diff --git a/actix_settings/actix/enum.Backlog.html b/actix_settings/actix/enum.Backlog.html new file mode 100644 index 000000000..9de7f4d6d --- /dev/null +++ b/actix_settings/actix/enum.Backlog.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../actix_settings/enum.Backlog.html...

+ + + \ No newline at end of file diff --git a/actix_settings/actix/enum.KeepAlive.html b/actix_settings/actix/enum.KeepAlive.html new file mode 100644 index 000000000..0269e6528 --- /dev/null +++ b/actix_settings/actix/enum.KeepAlive.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../actix_settings/enum.KeepAlive.html...

+ + + \ No newline at end of file diff --git a/actix_settings/actix/enum.MaxConnectionRate.html b/actix_settings/actix/enum.MaxConnectionRate.html new file mode 100644 index 000000000..63f9563e5 --- /dev/null +++ b/actix_settings/actix/enum.MaxConnectionRate.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../actix_settings/enum.MaxConnectionRate.html...

+ + + \ No newline at end of file diff --git a/actix_settings/actix/enum.MaxConnections.html b/actix_settings/actix/enum.MaxConnections.html new file mode 100644 index 000000000..e564bb223 --- /dev/null +++ b/actix_settings/actix/enum.MaxConnections.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../actix_settings/enum.MaxConnections.html...

+ + + \ No newline at end of file diff --git a/actix_settings/actix/enum.Mode.html b/actix_settings/actix/enum.Mode.html new file mode 100644 index 000000000..0f580e152 --- /dev/null +++ b/actix_settings/actix/enum.Mode.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../actix_settings/enum.Mode.html...

+ + + \ No newline at end of file diff --git a/actix_settings/actix/enum.NumWorkers.html b/actix_settings/actix/enum.NumWorkers.html new file mode 100644 index 000000000..459b7962c --- /dev/null +++ b/actix_settings/actix/enum.NumWorkers.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../actix_settings/enum.NumWorkers.html...

+ + + \ No newline at end of file diff --git a/actix_settings/actix/enum.Timeout.html b/actix_settings/actix/enum.Timeout.html new file mode 100644 index 000000000..bb47f8d96 --- /dev/null +++ b/actix_settings/actix/enum.Timeout.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../actix_settings/enum.Timeout.html...

+ + + \ No newline at end of file diff --git a/actix_settings/actix/struct.ActixSettings.html b/actix_settings/actix/struct.ActixSettings.html new file mode 100644 index 000000000..170d45a0c --- /dev/null +++ b/actix_settings/actix/struct.ActixSettings.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../actix_settings/struct.ActixSettings.html...

+ + + \ No newline at end of file diff --git a/actix_settings/actix/struct.Address.html b/actix_settings/actix/struct.Address.html new file mode 100644 index 000000000..ad9a9d34b --- /dev/null +++ b/actix_settings/actix/struct.Address.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../actix_settings/struct.Address.html...

+ + + \ No newline at end of file diff --git a/actix_settings/actix/struct.Tls.html b/actix_settings/actix/struct.Tls.html new file mode 100644 index 000000000..ef2e7521c --- /dev/null +++ b/actix_settings/actix/struct.Tls.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../actix_settings/struct.Tls.html...

+ + + \ No newline at end of file diff --git a/actix_settings/all.html b/actix_settings/all.html new file mode 100644 index 000000000..a681b4fc9 --- /dev/null +++ b/actix_settings/all.html @@ -0,0 +1 @@ +List of all items in this crate

List of all items

Structs

Enums

Traits

Typedefs

\ No newline at end of file diff --git a/actix_settings/core/trait.Parse.html b/actix_settings/core/trait.Parse.html new file mode 100644 index 000000000..5f1d9c0ea --- /dev/null +++ b/actix_settings/core/trait.Parse.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../actix_settings/trait.Parse.html...

+ + + \ No newline at end of file diff --git a/actix_settings/enum.AtError.html b/actix_settings/enum.AtError.html new file mode 100644 index 000000000..76ab46053 --- /dev/null +++ b/actix_settings/enum.AtError.html @@ -0,0 +1,49 @@ +AtError in actix_settings - Rust
pub enum AtError {
+    EnvVarError(VarError),
+    FileExists(PathBuf),
+    InvalidValue {
+        expected: &'static str,
+        got: String,
+        file: &'static str,
+        line: u32,
+        column: u32,
+    },
+    IoError(IoError),
+    ParseBoolError(ParseBoolError),
+    ParseIntError(ParseIntError),
+    ParseAddressError(String),
+    TomlError(TomlError),
+}

Variants

EnvVarError(VarError)

FileExists(PathBuf)

InvalidValue

Fields

expected: &'static str
got: String
file: &'static str
line: u32
column: u32

IoError(IoError)

ParseBoolError(ParseBoolError)

ParseIntError(ParseIntError)

ParseAddressError(String)

TomlError(TomlError)

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

+

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

+

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

+

Calls U::from(self).

+

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

+

Should always be Self

+

The resulting type after obtaining ownership.

+

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

+

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

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

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

+

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

+
\ No newline at end of file diff --git a/actix_settings/enum.Backlog.html b/actix_settings/enum.Backlog.html new file mode 100644 index 000000000..76a768f7a --- /dev/null +++ b/actix_settings/enum.Backlog.html @@ -0,0 +1,37 @@ +Backlog in actix_settings - Rust
pub enum Backlog {
+    Default,
+    Manual(usize),
+}

Variants

Default

Manual(usize)

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

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

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

+

Returns the argument unchanged.

+

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

+

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

+

Calls U::from(self).

+

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

+

Should always be Self

+

The resulting type after obtaining ownership.

+

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

+

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

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

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

+

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

+
\ No newline at end of file diff --git a/actix_settings/enum.KeepAlive.html b/actix_settings/enum.KeepAlive.html new file mode 100644 index 000000000..224180656 --- /dev/null +++ b/actix_settings/enum.KeepAlive.html @@ -0,0 +1,39 @@ +KeepAlive in actix_settings - Rust
pub enum KeepAlive {
+    Default,
+    Disabled,
+    Os,
+    Seconds(usize),
+}

Variants

Default

Disabled

Os

Seconds(usize)

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

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

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

+

Returns the argument unchanged.

+

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

+

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

+

Calls U::from(self).

+

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

+

Should always be Self

+

The resulting type after obtaining ownership.

+

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

+

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

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

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

+

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

+
\ No newline at end of file diff --git a/actix_settings/enum.MaxConnectionRate.html b/actix_settings/enum.MaxConnectionRate.html new file mode 100644 index 000000000..8df1a2273 --- /dev/null +++ b/actix_settings/enum.MaxConnectionRate.html @@ -0,0 +1,37 @@ +MaxConnectionRate in actix_settings - Rust
pub enum MaxConnectionRate {
+    Default,
+    Manual(usize),
+}

Variants

Default

Manual(usize)

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

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

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

+

Returns the argument unchanged.

+

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

+

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

+

Calls U::from(self).

+

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

+

Should always be Self

+

The resulting type after obtaining ownership.

+

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

+

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

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

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

+

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

+
\ No newline at end of file diff --git a/actix_settings/enum.MaxConnections.html b/actix_settings/enum.MaxConnections.html new file mode 100644 index 000000000..553a9bead --- /dev/null +++ b/actix_settings/enum.MaxConnections.html @@ -0,0 +1,37 @@ +MaxConnections in actix_settings - Rust
pub enum MaxConnections {
+    Default,
+    Manual(usize),
+}

Variants

Default

Manual(usize)

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

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

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

+

Returns the argument unchanged.

+

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

+

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

+

Calls U::from(self).

+

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

+

Should always be Self

+

The resulting type after obtaining ownership.

+

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

+

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

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

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

+

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

+
\ No newline at end of file diff --git a/actix_settings/enum.Mode.html b/actix_settings/enum.Mode.html new file mode 100644 index 000000000..923e060a9 --- /dev/null +++ b/actix_settings/enum.Mode.html @@ -0,0 +1,37 @@ +Mode in actix_settings - Rust
pub enum Mode {
+    Development,
+    Production,
+}

Variants

Development

Production

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

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

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

+

Returns the argument unchanged.

+

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

+

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

+

Calls U::from(self).

+

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

+

Should always be Self

+

The resulting type after obtaining ownership.

+

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

+

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

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

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

+

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

+
\ No newline at end of file diff --git a/actix_settings/enum.NumWorkers.html b/actix_settings/enum.NumWorkers.html new file mode 100644 index 000000000..98793890f --- /dev/null +++ b/actix_settings/enum.NumWorkers.html @@ -0,0 +1,37 @@ +NumWorkers in actix_settings - Rust
pub enum NumWorkers {
+    Default,
+    Manual(usize),
+}

Variants

Default

Manual(usize)

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

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

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

+

Returns the argument unchanged.

+

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

+

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

+

Calls U::from(self).

+

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

+

Should always be Self

+

The resulting type after obtaining ownership.

+

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

+

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

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

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

+

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

+
\ No newline at end of file diff --git a/actix_settings/enum.Timeout.html b/actix_settings/enum.Timeout.html new file mode 100644 index 000000000..c92d03ea0 --- /dev/null +++ b/actix_settings/enum.Timeout.html @@ -0,0 +1,38 @@ +Timeout in actix_settings - Rust
pub enum Timeout {
+    Default,
+    Milliseconds(usize),
+    Seconds(usize),
+}

Variants

Default

Milliseconds(usize)

Seconds(usize)

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

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

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

+

Returns the argument unchanged.

+

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

+

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

+

Calls U::from(self).

+

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

+

Should always be Self

+

The resulting type after obtaining ownership.

+

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

+

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

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

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

+

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

+
\ No newline at end of file diff --git a/actix_settings/error/enum.AtError.html b/actix_settings/error/enum.AtError.html new file mode 100644 index 000000000..038ddfc06 --- /dev/null +++ b/actix_settings/error/enum.AtError.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../actix_settings/enum.AtError.html...

+ + + \ No newline at end of file diff --git a/actix_settings/error/type.AtResult.html b/actix_settings/error/type.AtResult.html new file mode 100644 index 000000000..6323750e4 --- /dev/null +++ b/actix_settings/error/type.AtResult.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../actix_settings/type.AtResult.html...

+ + + \ No newline at end of file diff --git a/actix_settings/index.html b/actix_settings/index.html new file mode 100644 index 000000000..aea0dee55 --- /dev/null +++ b/actix_settings/index.html @@ -0,0 +1,2 @@ +actix_settings - Rust

Structs

Settings types for Actix Web.

+

Enums

Traits

Type Definitions

\ No newline at end of file diff --git a/actix_settings/sidebar-items.js b/actix_settings/sidebar-items.js new file mode 100644 index 000000000..38b1f184c --- /dev/null +++ b/actix_settings/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"enum":[["AtError",""],["Backlog",""],["KeepAlive",""],["MaxConnectionRate",""],["MaxConnections",""],["Mode",""],["NumWorkers",""],["Timeout",""]],"struct":[["ActixSettings","Settings types for Actix Web."],["Address",""],["BasicSettings",""],["NoSettings",""],["Tls",""]],"trait":[["ApplySettings",""],["Parse",""]],"type":[["AtResult",""],["Settings",""]]}; \ No newline at end of file diff --git a/actix_settings/struct.ActixSettings.html b/actix_settings/struct.ActixSettings.html new file mode 100644 index 000000000..4f7743be2 --- /dev/null +++ b/actix_settings/struct.ActixSettings.html @@ -0,0 +1,49 @@ +ActixSettings in actix_settings - Rust
pub struct ActixSettings {
Show 13 fields + pub hosts: Vec<Address>, + pub mode: Mode, + pub enable_compression: bool, + pub enable_log: bool, + pub num_workers: NumWorkers, + pub backlog: Backlog, + pub max_connections: MaxConnections, + pub max_connection_rate: MaxConnectionRate, + pub keep_alive: KeepAlive, + pub client_timeout: Timeout, + pub client_shutdown: Timeout, + pub shutdown_timeout: Timeout, + pub tls: Tls, +
}
Expand description

Settings types for Actix Web.

+

Fields

hosts: Vec<Address>mode: Modeenable_compression: boolenable_log: boolnum_workers: NumWorkersbacklog: Backlogmax_connections: MaxConnectionsmax_connection_rate: MaxConnectionRatekeep_alive: KeepAliveclient_timeout: Timeoutclient_shutdown: Timeoutshutdown_timeout: Timeouttls: Tls

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

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

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

+

Returns the argument unchanged.

+

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

+

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

+

Calls U::from(self).

+

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

+

Should always be Self

+

The resulting type after obtaining ownership.

+

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

+

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

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

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

+

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

+
\ No newline at end of file diff --git a/actix_settings/struct.Address.html b/actix_settings/struct.Address.html new file mode 100644 index 000000000..717c5fb6f --- /dev/null +++ b/actix_settings/struct.Address.html @@ -0,0 +1,37 @@ +Address in actix_settings - Rust
pub struct Address {
+    pub host: String,
+    pub port: u16,
+}

Fields

host: Stringport: u16

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

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

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

+

Returns the argument unchanged.

+

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

+

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

+

Calls U::from(self).

+

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

+

Should always be Self

+

The resulting type after obtaining ownership.

+

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

+

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

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

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

+

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

+
\ No newline at end of file diff --git a/actix_settings/struct.BasicSettings.html b/actix_settings/struct.BasicSettings.html new file mode 100644 index 000000000..6d2c4d02f --- /dev/null +++ b/actix_settings/struct.BasicSettings.html @@ -0,0 +1,45 @@ +BasicSettings in actix_settings - Rust
pub struct BasicSettings<A> {
+    pub actix: ActixSettings,
+    pub application: A,
+}

Fields

actix: ActixSettingsapplication: A

Implementations

Parse an instance of Self from a TOML file located at filepath. +If the file doesn’t exist, it is generated from the default TOML +template, after which the newly generated file is read in and parsed.

+

Parse an instance of Self straight from the default TOML template.

+

Parse an instance of Self straight from the default TOML template.

+

Write the default TOML template to a new file, to be located +at filepath. Return a Error::FileExists(_) error if a +file already exists at that location.

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

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

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

+

Returns the argument unchanged.

+

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

+

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

+

Calls U::from(self).

+

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

+

Should always be Self

+

The resulting type after obtaining ownership.

+

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

+

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

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

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

+

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

+
\ No newline at end of file diff --git a/actix_settings/struct.NoSettings.html b/actix_settings/struct.NoSettings.html new file mode 100644 index 000000000..8623138d0 --- /dev/null +++ b/actix_settings/struct.NoSettings.html @@ -0,0 +1,34 @@ +NoSettings in actix_settings - Rust
#[non_exhaustive]
pub struct NoSettings {}

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

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

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

+

Returns the argument unchanged.

+

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

+

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

+

Calls U::from(self).

+

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

+

Should always be Self

+

The resulting type after obtaining ownership.

+

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

+

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

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

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

+

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

+
\ No newline at end of file diff --git a/actix_settings/struct.Tls.html b/actix_settings/struct.Tls.html new file mode 100644 index 000000000..03d828322 --- /dev/null +++ b/actix_settings/struct.Tls.html @@ -0,0 +1,38 @@ +Tls in actix_settings - Rust
pub struct Tls {
+    pub enabled: bool,
+    pub certificate: PathBuf,
+    pub private_key: PathBuf,
+}

Fields

enabled: boolcertificate: PathBufprivate_key: PathBuf

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

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

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

+

Returns the argument unchanged.

+

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

+

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

+

Calls U::from(self).

+

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

+

Should always be Self

+

The resulting type after obtaining ownership.

+

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

+

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

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

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

+

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

+
\ No newline at end of file diff --git a/actix_settings/trait.ApplySettings.html b/actix_settings/trait.ApplySettings.html new file mode 100644 index 000000000..ba8f55ace --- /dev/null +++ b/actix_settings/trait.ApplySettings.html @@ -0,0 +1,4 @@ +ApplySettings in actix_settings - Rust
pub trait ApplySettings {
+    fn apply_settings<A>(self, settings: &BasicSettings<A>) -> Self
    where
        A: DeserializeOwned
; +}

Required Methods

Apply a BasicSettings value to self.

+

Implementations on Foreign Types

Implementors

\ No newline at end of file diff --git a/actix_settings/trait.Parse.html b/actix_settings/trait.Parse.html new file mode 100644 index 000000000..9bbb62916 --- /dev/null +++ b/actix_settings/trait.Parse.html @@ -0,0 +1,3 @@ +Parse in actix_settings - Rust
pub trait Parse: Sized {
+    fn parse(string: &str) -> Result<Self, AtError>;
+}

Required Methods

Implementations on Foreign Types

Implementors

\ No newline at end of file diff --git a/actix_settings/type.AtResult.html b/actix_settings/type.AtResult.html new file mode 100644 index 000000000..41b91d6cf --- /dev/null +++ b/actix_settings/type.AtResult.html @@ -0,0 +1 @@ +AtResult in actix_settings - Rust

Type Definition actix_settings::AtResult

source · []
pub type AtResult<T> = Result<T, AtError>;
\ No newline at end of file diff --git a/actix_settings/type.Settings.html b/actix_settings/type.Settings.html new file mode 100644 index 000000000..25d74e182 --- /dev/null +++ b/actix_settings/type.Settings.html @@ -0,0 +1 @@ +Settings in actix_settings - Rust

Type Definition actix_settings::Settings

source · []
pub type Settings = BasicSettings<NoSettings>;
\ No newline at end of file diff --git a/crates.js b/crates.js index 11b614ad6..9abb31dc8 100644 --- a/crates.js +++ b/crates.js @@ -1 +1 @@ -window.ALL_CRATES = ["actix_cors","actix_identity","actix_limitation","actix_protobuf","actix_redis","actix_session","actix_web_httpauth"]; \ No newline at end of file +window.ALL_CRATES = ["actix_cors","actix_identity","actix_limitation","actix_protobuf","actix_redis","actix_session","actix_settings","actix_web_httpauth"]; \ No newline at end of file diff --git a/implementors/actix_settings/core/trait.Parse.js b/implementors/actix_settings/core/trait.Parse.js new file mode 100644 index 000000000..7919be9b3 --- /dev/null +++ b/implementors/actix_settings/core/trait.Parse.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["actix_settings"] = []; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/actix_settings/trait.ApplySettings.js b/implementors/actix_settings/trait.ApplySettings.js new file mode 100644 index 000000000..7919be9b3 --- /dev/null +++ b/implementors/actix_settings/trait.ApplySettings.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["actix_settings"] = []; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/clone/trait.Clone.js b/implementors/core/clone/trait.Clone.js index 676f086e0..c1ab884ad 100644 --- a/implementors/core/clone/trait.Clone.js +++ b/implementors/core/clone/trait.Clone.js @@ -3,5 +3,6 @@ implementors["actix_cors"] = [{"text":"impl Clone for LogoutBehaviour","synthetic":false,"types":["actix_identity::config::LogoutBehaviour"]},{"text":"impl Clone for IdentityMiddlewareBuilder","synthetic":false,"types":["actix_identity::config::IdentityMiddlewareBuilder"]},{"text":"impl Clone for IdentityMiddleware","synthetic":false,"types":["actix_identity::middleware::IdentityMiddleware"]}]; implementors["actix_limitation"] = [{"text":"impl Clone for Status","synthetic":false,"types":["actix_limitation::status::Status"]},{"text":"impl Clone for Limiter","synthetic":false,"types":["actix_limitation::Limiter"]}]; implementors["actix_session"] = [{"text":"impl Clone for SessionLifecycle","synthetic":false,"types":["actix_session::config::SessionLifecycle"]},{"text":"impl Clone for BrowserSession","synthetic":false,"types":["actix_session::config::BrowserSession"]},{"text":"impl Clone for PersistentSession","synthetic":false,"types":["actix_session::config::PersistentSession"]},{"text":"impl Clone for TtlExtensionPolicy","synthetic":false,"types":["actix_session::config::TtlExtensionPolicy"]},{"text":"impl Clone for CookieContentSecurity","synthetic":false,"types":["actix_session::config::CookieContentSecurity"]},{"text":"impl<Store: Clone + SessionStore> Clone for SessionMiddleware<Store>","synthetic":false,"types":["actix_session::middleware::SessionMiddleware"]},{"text":"impl Clone for Session","synthetic":false,"types":["actix_session::session::Session"]},{"text":"impl Clone for SessionStatus","synthetic":false,"types":["actix_session::session::SessionStatus"]},{"text":"impl Clone for RedisSessionStore","synthetic":false,"types":["actix_session::storage::redis_rs::RedisSessionStore"]}]; +implementors["actix_settings"] = [{"text":"impl Clone for AtError","synthetic":false,"types":["actix_settings::error::AtError"]},{"text":"impl Clone for ActixSettings","synthetic":false,"types":["actix_settings::actix::ActixSettings"]},{"text":"impl Clone for Address","synthetic":false,"types":["actix_settings::actix::Address"]},{"text":"impl Clone for Mode","synthetic":false,"types":["actix_settings::actix::Mode"]},{"text":"impl Clone for NumWorkers","synthetic":false,"types":["actix_settings::actix::NumWorkers"]},{"text":"impl Clone for Backlog","synthetic":false,"types":["actix_settings::actix::Backlog"]},{"text":"impl Clone for MaxConnections","synthetic":false,"types":["actix_settings::actix::MaxConnections"]},{"text":"impl Clone for MaxConnectionRate","synthetic":false,"types":["actix_settings::actix::MaxConnectionRate"]},{"text":"impl Clone for KeepAlive","synthetic":false,"types":["actix_settings::actix::KeepAlive"]},{"text":"impl Clone for Timeout","synthetic":false,"types":["actix_settings::actix::Timeout"]},{"text":"impl Clone for Tls","synthetic":false,"types":["actix_settings::actix::Tls"]},{"text":"impl<A: Clone> Clone for BasicSettings<A>","synthetic":false,"types":["actix_settings::BasicSettings"]},{"text":"impl Clone for NoSettings","synthetic":false,"types":["actix_settings::NoSettings"]}]; implementors["actix_web_httpauth"] = [{"text":"impl Clone for Config","synthetic":false,"types":["actix_web_httpauth::extractors::basic::Config"]},{"text":"impl Clone for BasicAuth","synthetic":false,"types":["actix_web_httpauth::extractors::basic::BasicAuth"]},{"text":"impl Clone for Config","synthetic":false,"types":["actix_web_httpauth::extractors::bearer::Config"]},{"text":"impl Clone for BearerAuth","synthetic":false,"types":["actix_web_httpauth::extractors::bearer::BearerAuth"]},{"text":"impl<S: Clone + Scheme> Clone for Authorization<S>","synthetic":false,"types":["actix_web_httpauth::headers::authorization::header::Authorization"]},{"text":"impl Clone for Basic","synthetic":false,"types":["actix_web_httpauth::headers::authorization::scheme::basic::Basic"]},{"text":"impl Clone for Bearer","synthetic":false,"types":["actix_web_httpauth::headers::authorization::scheme::bearer::Bearer"]},{"text":"impl Clone for Basic","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::basic::Basic"]},{"text":"impl Clone for Bearer","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::challenge::Bearer"]},{"text":"impl Clone for Error","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::errors::Error"]},{"text":"impl<C: Clone + Challenge> Clone for WwwAuthenticate<C>","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::header::WwwAuthenticate"]},{"text":"impl<T: Clone, F: Clone> Clone for HttpAuthentication<T, F> where
    T: FromRequest, 
","synthetic":false,"types":["actix_web_httpauth::middleware::HttpAuthentication"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/cmp/trait.Eq.js b/implementors/core/cmp/trait.Eq.js index 6af845522..24d777ba0 100644 --- a/implementors/core/cmp/trait.Eq.js +++ b/implementors/core/cmp/trait.Eq.js @@ -1,4 +1,5 @@ (function() {var implementors = {}; implementors["actix_session"] = [{"text":"impl Eq for SessionStatus","synthetic":false,"types":["actix_session::session::SessionStatus"]},{"text":"impl Eq for SessionKey","synthetic":false,"types":["actix_session::storage::session_key::SessionKey"]}]; +implementors["actix_settings"] = [{"text":"impl Eq for ActixSettings","synthetic":false,"types":["actix_settings::actix::ActixSettings"]},{"text":"impl Eq for Address","synthetic":false,"types":["actix_settings::actix::Address"]},{"text":"impl Eq for Mode","synthetic":false,"types":["actix_settings::actix::Mode"]},{"text":"impl Eq for NumWorkers","synthetic":false,"types":["actix_settings::actix::NumWorkers"]},{"text":"impl Eq for Backlog","synthetic":false,"types":["actix_settings::actix::Backlog"]},{"text":"impl Eq for MaxConnections","synthetic":false,"types":["actix_settings::actix::MaxConnections"]},{"text":"impl Eq for MaxConnectionRate","synthetic":false,"types":["actix_settings::actix::MaxConnectionRate"]},{"text":"impl Eq for KeepAlive","synthetic":false,"types":["actix_settings::actix::KeepAlive"]},{"text":"impl Eq for Timeout","synthetic":false,"types":["actix_settings::actix::Timeout"]},{"text":"impl Eq for Tls","synthetic":false,"types":["actix_settings::actix::Tls"]},{"text":"impl<A: Eq> Eq for BasicSettings<A>","synthetic":false,"types":["actix_settings::BasicSettings"]},{"text":"impl Eq for NoSettings","synthetic":false,"types":["actix_settings::NoSettings"]}]; implementors["actix_web_httpauth"] = [{"text":"impl<S: Eq + Scheme> Eq for Authorization<S>","synthetic":false,"types":["actix_web_httpauth::headers::authorization::header::Authorization"]},{"text":"impl Eq for Basic","synthetic":false,"types":["actix_web_httpauth::headers::authorization::scheme::basic::Basic"]},{"text":"impl Eq for Bearer","synthetic":false,"types":["actix_web_httpauth::headers::authorization::scheme::bearer::Bearer"]},{"text":"impl Eq for Basic","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::basic::Basic"]},{"text":"impl Eq for Bearer","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::challenge::Bearer"]},{"text":"impl Eq for Error","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::errors::Error"]},{"text":"impl<C: Eq + Challenge> Eq for WwwAuthenticate<C>","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::header::WwwAuthenticate"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/cmp/trait.PartialEq.js b/implementors/core/cmp/trait.PartialEq.js index 204717cf0..6e2d6d1b8 100644 --- a/implementors/core/cmp/trait.PartialEq.js +++ b/implementors/core/cmp/trait.PartialEq.js @@ -1,4 +1,5 @@ (function() {var implementors = {}; implementors["actix_session"] = [{"text":"impl PartialEq<SessionStatus> for SessionStatus","synthetic":false,"types":["actix_session::session::SessionStatus"]},{"text":"impl PartialEq<SessionKey> for SessionKey","synthetic":false,"types":["actix_session::storage::session_key::SessionKey"]}]; +implementors["actix_settings"] = [{"text":"impl PartialEq<ActixSettings> for ActixSettings","synthetic":false,"types":["actix_settings::actix::ActixSettings"]},{"text":"impl PartialEq<Address> for Address","synthetic":false,"types":["actix_settings::actix::Address"]},{"text":"impl PartialEq<Mode> for Mode","synthetic":false,"types":["actix_settings::actix::Mode"]},{"text":"impl PartialEq<NumWorkers> for NumWorkers","synthetic":false,"types":["actix_settings::actix::NumWorkers"]},{"text":"impl PartialEq<Backlog> for Backlog","synthetic":false,"types":["actix_settings::actix::Backlog"]},{"text":"impl PartialEq<MaxConnections> for MaxConnections","synthetic":false,"types":["actix_settings::actix::MaxConnections"]},{"text":"impl PartialEq<MaxConnectionRate> for MaxConnectionRate","synthetic":false,"types":["actix_settings::actix::MaxConnectionRate"]},{"text":"impl PartialEq<KeepAlive> for KeepAlive","synthetic":false,"types":["actix_settings::actix::KeepAlive"]},{"text":"impl PartialEq<Timeout> for Timeout","synthetic":false,"types":["actix_settings::actix::Timeout"]},{"text":"impl PartialEq<Tls> for Tls","synthetic":false,"types":["actix_settings::actix::Tls"]},{"text":"impl<A: PartialEq> PartialEq<BasicSettings<A>> for BasicSettings<A>","synthetic":false,"types":["actix_settings::BasicSettings"]},{"text":"impl PartialEq<NoSettings> for NoSettings","synthetic":false,"types":["actix_settings::NoSettings"]}]; implementors["actix_web_httpauth"] = [{"text":"impl<S: PartialEq + Scheme> PartialEq<Authorization<S>> for Authorization<S>","synthetic":false,"types":["actix_web_httpauth::headers::authorization::header::Authorization"]},{"text":"impl PartialEq<Basic> for Basic","synthetic":false,"types":["actix_web_httpauth::headers::authorization::scheme::basic::Basic"]},{"text":"impl PartialEq<Bearer> for Bearer","synthetic":false,"types":["actix_web_httpauth::headers::authorization::scheme::bearer::Bearer"]},{"text":"impl PartialEq<Basic> for Basic","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::basic::Basic"]},{"text":"impl PartialEq<Bearer> for Bearer","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::challenge::Bearer"]},{"text":"impl PartialEq<Error> for Error","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::errors::Error"]},{"text":"impl<C: PartialEq + Challenge> PartialEq<WwwAuthenticate<C>> for WwwAuthenticate<C>","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::header::WwwAuthenticate"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/convert/trait.From.js b/implementors/core/convert/trait.From.js index e14de89cc..fe5e24e4b 100644 --- a/implementors/core/convert/trait.From.js +++ b/implementors/core/convert/trait.From.js @@ -3,5 +3,6 @@ implementors["actix_limitation"] = [{"text":"impl From<PayloadError> for ProtoBufPayloadError","synthetic":false,"types":["actix_protobuf::ProtoBufPayloadError"]},{"text":"impl From<DecodeError> for ProtoBufPayloadError","synthetic":false,"types":["actix_protobuf::ProtoBufPayloadError"]}]; implementors["actix_redis"] = [{"text":"impl From<Error> for Error","synthetic":false,"types":["actix_redis::Error"]}]; implementors["actix_session"] = [{"text":"impl From<BrowserSession> for SessionLifecycle","synthetic":false,"types":["actix_session::config::SessionLifecycle"]},{"text":"impl From<PersistentSession> for SessionLifecycle","synthetic":false,"types":["actix_session::config::SessionLifecycle"]},{"text":"impl From<Error> for SessionGetError","synthetic":false,"types":["actix_session::session::SessionGetError"]},{"text":"impl From<Error> for SessionInsertError","synthetic":false,"types":["actix_session::session::SessionInsertError"]},{"text":"impl From<SessionKey> for String","synthetic":false,"types":["alloc::string::String"]}]; +implementors["actix_settings"] = [{"text":"impl From<Error> for AtError","synthetic":false,"types":["actix_settings::error::AtError"]},{"text":"impl From<IoError> for AtError","synthetic":false,"types":["actix_settings::error::AtError"]},{"text":"impl From<ParseBoolError> for AtError","synthetic":false,"types":["actix_settings::error::AtError"]},{"text":"impl From<ParseIntError> for AtError","synthetic":false,"types":["actix_settings::error::AtError"]},{"text":"impl From<Error> for AtError","synthetic":false,"types":["actix_settings::error::AtError"]},{"text":"impl From<VarError> for AtError","synthetic":false,"types":["actix_settings::error::AtError"]},{"text":"impl From<AtError> for Error","synthetic":false,"types":["std::io::error::Error"]}]; implementors["actix_web_httpauth"] = [{"text":"impl<T> From<T> for AuthenticationError<<T as AuthExtractorConfig>::Inner> where
    T: AuthExtractorConfig
","synthetic":false,"types":["actix_web_httpauth::extractors::errors::AuthenticationError"]},{"text":"impl From<ToStrError> for ParseError","synthetic":false,"types":["actix_web_httpauth::headers::authorization::errors::ParseError"]},{"text":"impl From<DecodeError> for ParseError","synthetic":false,"types":["actix_web_httpauth::headers::authorization::errors::ParseError"]},{"text":"impl From<Utf8Error> for ParseError","synthetic":false,"types":["actix_web_httpauth::headers::authorization::errors::ParseError"]},{"text":"impl<S: Scheme> From<S> for Authorization<S>","synthetic":false,"types":["actix_web_httpauth::headers::authorization::header::Authorization"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/fmt/trait.Debug.js b/implementors/core/fmt/trait.Debug.js index 8d00cfda5..e7458fe50 100644 --- a/implementors/core/fmt/trait.Debug.js +++ b/implementors/core/fmt/trait.Debug.js @@ -5,5 +5,6 @@ implementors["actix_limitation"] = [{"text":"impl Debug for ProtoBufPayloadError","synthetic":false,"types":["actix_protobuf::ProtoBufPayloadError"]},{"text":"impl<T: Message> Debug for ProtoBuf<T> where
    T: Debug
","synthetic":false,"types":["actix_protobuf::ProtoBuf"]}]; implementors["actix_redis"] = [{"text":"impl Debug for Command","synthetic":false,"types":["actix_redis::redis::Command"]},{"text":"impl Debug for Error","synthetic":false,"types":["actix_redis::Error"]}]; implementors["actix_session"] = [{"text":"impl Debug for SessionLifecycle","synthetic":false,"types":["actix_session::config::SessionLifecycle"]},{"text":"impl Debug for BrowserSession","synthetic":false,"types":["actix_session::config::BrowserSession"]},{"text":"impl Debug for PersistentSession","synthetic":false,"types":["actix_session::config::PersistentSession"]},{"text":"impl Debug for TtlExtensionPolicy","synthetic":false,"types":["actix_session::config::TtlExtensionPolicy"]},{"text":"impl Debug for CookieContentSecurity","synthetic":false,"types":["actix_session::config::CookieContentSecurity"]},{"text":"impl Debug for SessionStatus","synthetic":false,"types":["actix_session::session::SessionStatus"]},{"text":"impl Debug for SessionGetError","synthetic":false,"types":["actix_session::session::SessionGetError"]},{"text":"impl Debug for SessionInsertError","synthetic":false,"types":["actix_session::session::SessionInsertError"]},{"text":"impl Debug for LoadError","synthetic":false,"types":["actix_session::storage::interface::LoadError"]},{"text":"impl Debug for SaveError","synthetic":false,"types":["actix_session::storage::interface::SaveError"]},{"text":"impl Debug for UpdateError","synthetic":false,"types":["actix_session::storage::interface::UpdateError"]},{"text":"impl Debug for SessionKey","synthetic":false,"types":["actix_session::storage::session_key::SessionKey"]}]; +implementors["actix_settings"] = [{"text":"impl Debug for AtError","synthetic":false,"types":["actix_settings::error::AtError"]},{"text":"impl Debug for ActixSettings","synthetic":false,"types":["actix_settings::actix::ActixSettings"]},{"text":"impl Debug for Address","synthetic":false,"types":["actix_settings::actix::Address"]},{"text":"impl Debug for Mode","synthetic":false,"types":["actix_settings::actix::Mode"]},{"text":"impl Debug for NumWorkers","synthetic":false,"types":["actix_settings::actix::NumWorkers"]},{"text":"impl Debug for Backlog","synthetic":false,"types":["actix_settings::actix::Backlog"]},{"text":"impl Debug for MaxConnections","synthetic":false,"types":["actix_settings::actix::MaxConnections"]},{"text":"impl Debug for MaxConnectionRate","synthetic":false,"types":["actix_settings::actix::MaxConnectionRate"]},{"text":"impl Debug for KeepAlive","synthetic":false,"types":["actix_settings::actix::KeepAlive"]},{"text":"impl Debug for Timeout","synthetic":false,"types":["actix_settings::actix::Timeout"]},{"text":"impl Debug for Tls","synthetic":false,"types":["actix_settings::actix::Tls"]},{"text":"impl<A: Debug> Debug for BasicSettings<A>","synthetic":false,"types":["actix_settings::BasicSettings"]},{"text":"impl Debug for NoSettings","synthetic":false,"types":["actix_settings::NoSettings"]}]; implementors["actix_web_httpauth"] = [{"text":"impl Debug for Config","synthetic":false,"types":["actix_web_httpauth::extractors::basic::Config"]},{"text":"impl Debug for BasicAuth","synthetic":false,"types":["actix_web_httpauth::extractors::basic::BasicAuth"]},{"text":"impl Debug for Config","synthetic":false,"types":["actix_web_httpauth::extractors::bearer::Config"]},{"text":"impl Debug for BearerAuth","synthetic":false,"types":["actix_web_httpauth::extractors::bearer::BearerAuth"]},{"text":"impl<C: Debug + Challenge> Debug for AuthenticationError<C>","synthetic":false,"types":["actix_web_httpauth::extractors::errors::AuthenticationError"]},{"text":"impl Debug for ParseError","synthetic":false,"types":["actix_web_httpauth::headers::authorization::errors::ParseError"]},{"text":"impl<S: Debug + Scheme> Debug for Authorization<S>","synthetic":false,"types":["actix_web_httpauth::headers::authorization::header::Authorization"]},{"text":"impl Debug for Basic","synthetic":false,"types":["actix_web_httpauth::headers::authorization::scheme::basic::Basic"]},{"text":"impl Debug for Bearer","synthetic":false,"types":["actix_web_httpauth::headers::authorization::scheme::bearer::Bearer"]},{"text":"impl Debug for Basic","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::basic::Basic"]},{"text":"impl Debug for BearerBuilder","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::builder::BearerBuilder"]},{"text":"impl Debug for Bearer","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::challenge::Bearer"]},{"text":"impl Debug for Error","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::errors::Error"]},{"text":"impl<C: Debug + Challenge> Debug for WwwAuthenticate<C>","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::header::WwwAuthenticate"]},{"text":"impl<T: Debug, F: Debug> Debug for HttpAuthentication<T, F> where
    T: FromRequest, 
","synthetic":false,"types":["actix_web_httpauth::middleware::HttpAuthentication"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/hash/trait.Hash.js b/implementors/core/hash/trait.Hash.js index 75ab7620d..17c8f0043 100644 --- a/implementors/core/hash/trait.Hash.js +++ b/implementors/core/hash/trait.Hash.js @@ -1,3 +1,4 @@ (function() {var implementors = {}; +implementors["actix_settings"] = [{"text":"impl Hash for ActixSettings","synthetic":false,"types":["actix_settings::actix::ActixSettings"]},{"text":"impl Hash for Address","synthetic":false,"types":["actix_settings::actix::Address"]},{"text":"impl Hash for Mode","synthetic":false,"types":["actix_settings::actix::Mode"]},{"text":"impl Hash for NumWorkers","synthetic":false,"types":["actix_settings::actix::NumWorkers"]},{"text":"impl Hash for Backlog","synthetic":false,"types":["actix_settings::actix::Backlog"]},{"text":"impl Hash for MaxConnections","synthetic":false,"types":["actix_settings::actix::MaxConnections"]},{"text":"impl Hash for MaxConnectionRate","synthetic":false,"types":["actix_settings::actix::MaxConnectionRate"]},{"text":"impl Hash for KeepAlive","synthetic":false,"types":["actix_settings::actix::KeepAlive"]},{"text":"impl Hash for Timeout","synthetic":false,"types":["actix_settings::actix::Timeout"]},{"text":"impl Hash for Tls","synthetic":false,"types":["actix_settings::actix::Tls"]},{"text":"impl<A: Hash> Hash for BasicSettings<A>","synthetic":false,"types":["actix_settings::BasicSettings"]},{"text":"impl Hash for NoSettings","synthetic":false,"types":["actix_settings::NoSettings"]}]; implementors["actix_web_httpauth"] = [{"text":"impl<S: Hash + Scheme> Hash for Authorization<S>","synthetic":false,"types":["actix_web_httpauth::headers::authorization::header::Authorization"]},{"text":"impl Hash for Basic","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::basic::Basic"]},{"text":"impl Hash for Bearer","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::challenge::Bearer"]},{"text":"impl Hash for Error","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::errors::Error"]},{"text":"impl<C: Hash + Challenge> Hash for WwwAuthenticate<C>","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::header::WwwAuthenticate"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Freeze.js b/implementors/core/marker/trait.Freeze.js index 33a20dc40..b5a9c77e0 100644 --- a/implementors/core/marker/trait.Freeze.js +++ b/implementors/core/marker/trait.Freeze.js @@ -5,5 +5,6 @@ implementors["actix_limitation"] = [{"text":"impl Freeze for ProtoBufPayloadError","synthetic":true,"types":["actix_protobuf::ProtoBufPayloadError"]},{"text":"impl<T> Freeze for ProtoBuf<T> where
    T: Freeze, 
","synthetic":true,"types":["actix_protobuf::ProtoBuf"]},{"text":"impl Freeze for ProtoBufConfig","synthetic":true,"types":["actix_protobuf::ProtoBufConfig"]},{"text":"impl<T> !Freeze for ProtoBufMessage<T>","synthetic":true,"types":["actix_protobuf::ProtoBufMessage"]}]; implementors["actix_redis"] = [{"text":"impl Freeze for Command","synthetic":true,"types":["actix_redis::redis::Command"]},{"text":"impl Freeze for RedisActor","synthetic":true,"types":["actix_redis::redis::RedisActor"]},{"text":"impl Freeze for Error","synthetic":true,"types":["actix_redis::Error"]}]; implementors["actix_session"] = [{"text":"impl Freeze for SessionLifecycle","synthetic":true,"types":["actix_session::config::SessionLifecycle"]},{"text":"impl Freeze for BrowserSession","synthetic":true,"types":["actix_session::config::BrowserSession"]},{"text":"impl Freeze for PersistentSession","synthetic":true,"types":["actix_session::config::PersistentSession"]},{"text":"impl Freeze for TtlExtensionPolicy","synthetic":true,"types":["actix_session::config::TtlExtensionPolicy"]},{"text":"impl Freeze for CookieContentSecurity","synthetic":true,"types":["actix_session::config::CookieContentSecurity"]},{"text":"impl<Store> Freeze for SessionMiddlewareBuilder<Store> where
    Store: Freeze, 
","synthetic":true,"types":["actix_session::config::SessionMiddlewareBuilder"]},{"text":"impl<Store> Freeze for SessionMiddleware<Store>","synthetic":true,"types":["actix_session::middleware::SessionMiddleware"]},{"text":"impl Freeze for Session","synthetic":true,"types":["actix_session::session::Session"]},{"text":"impl Freeze for SessionStatus","synthetic":true,"types":["actix_session::session::SessionStatus"]},{"text":"impl Freeze for SessionGetError","synthetic":true,"types":["actix_session::session::SessionGetError"]},{"text":"impl Freeze for SessionInsertError","synthetic":true,"types":["actix_session::session::SessionInsertError"]},{"text":"impl Freeze for LoadError","synthetic":true,"types":["actix_session::storage::interface::LoadError"]},{"text":"impl Freeze for SaveError","synthetic":true,"types":["actix_session::storage::interface::SaveError"]},{"text":"impl Freeze for UpdateError","synthetic":true,"types":["actix_session::storage::interface::UpdateError"]},{"text":"impl Freeze for SessionKey","synthetic":true,"types":["actix_session::storage::session_key::SessionKey"]},{"text":"impl Freeze for CookieSessionStore","synthetic":true,"types":["actix_session::storage::cookie::CookieSessionStore"]},{"text":"impl Freeze for RedisActorSessionStore","synthetic":true,"types":["actix_session::storage::redis_actor::RedisActorSessionStore"]},{"text":"impl Freeze for RedisActorSessionStoreBuilder","synthetic":true,"types":["actix_session::storage::redis_actor::RedisActorSessionStoreBuilder"]},{"text":"impl Freeze for RedisSessionStore","synthetic":true,"types":["actix_session::storage::redis_rs::RedisSessionStore"]},{"text":"impl Freeze for RedisSessionStoreBuilder","synthetic":true,"types":["actix_session::storage::redis_rs::RedisSessionStoreBuilder"]}]; +implementors["actix_settings"] = [{"text":"impl Freeze for AtError","synthetic":true,"types":["actix_settings::error::AtError"]},{"text":"impl Freeze for ActixSettings","synthetic":true,"types":["actix_settings::actix::ActixSettings"]},{"text":"impl Freeze for Address","synthetic":true,"types":["actix_settings::actix::Address"]},{"text":"impl Freeze for Mode","synthetic":true,"types":["actix_settings::actix::Mode"]},{"text":"impl Freeze for NumWorkers","synthetic":true,"types":["actix_settings::actix::NumWorkers"]},{"text":"impl Freeze for Backlog","synthetic":true,"types":["actix_settings::actix::Backlog"]},{"text":"impl Freeze for MaxConnections","synthetic":true,"types":["actix_settings::actix::MaxConnections"]},{"text":"impl Freeze for MaxConnectionRate","synthetic":true,"types":["actix_settings::actix::MaxConnectionRate"]},{"text":"impl Freeze for KeepAlive","synthetic":true,"types":["actix_settings::actix::KeepAlive"]},{"text":"impl Freeze for Timeout","synthetic":true,"types":["actix_settings::actix::Timeout"]},{"text":"impl Freeze for Tls","synthetic":true,"types":["actix_settings::actix::Tls"]},{"text":"impl<A> Freeze for BasicSettings<A> where
    A: Freeze, 
","synthetic":true,"types":["actix_settings::BasicSettings"]},{"text":"impl Freeze for NoSettings","synthetic":true,"types":["actix_settings::NoSettings"]}]; implementors["actix_web_httpauth"] = [{"text":"impl Freeze for Config","synthetic":true,"types":["actix_web_httpauth::extractors::basic::Config"]},{"text":"impl Freeze for BasicAuth","synthetic":true,"types":["actix_web_httpauth::extractors::basic::BasicAuth"]},{"text":"impl Freeze for Error","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::errors::Error"]},{"text":"impl Freeze for Config","synthetic":true,"types":["actix_web_httpauth::extractors::bearer::Config"]},{"text":"impl Freeze for BearerAuth","synthetic":true,"types":["actix_web_httpauth::extractors::bearer::BearerAuth"]},{"text":"impl<C> Freeze for AuthenticationError<C> where
    C: Freeze, 
","synthetic":true,"types":["actix_web_httpauth::extractors::errors::AuthenticationError"]},{"text":"impl Freeze for ParseError","synthetic":true,"types":["actix_web_httpauth::headers::authorization::errors::ParseError"]},{"text":"impl<S> Freeze for Authorization<S> where
    S: Freeze, 
","synthetic":true,"types":["actix_web_httpauth::headers::authorization::header::Authorization"]},{"text":"impl Freeze for Basic","synthetic":true,"types":["actix_web_httpauth::headers::authorization::scheme::basic::Basic"]},{"text":"impl Freeze for Bearer","synthetic":true,"types":["actix_web_httpauth::headers::authorization::scheme::bearer::Bearer"]},{"text":"impl Freeze for Basic","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::basic::Basic"]},{"text":"impl Freeze for BearerBuilder","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::builder::BearerBuilder"]},{"text":"impl Freeze for Bearer","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::challenge::Bearer"]},{"text":"impl<C> Freeze for WwwAuthenticate<C> where
    C: Freeze, 
","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::header::WwwAuthenticate"]},{"text":"impl<T, F> Freeze for HttpAuthentication<T, F>","synthetic":true,"types":["actix_web_httpauth::middleware::HttpAuthentication"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Send.js b/implementors/core/marker/trait.Send.js index 00ff92538..a98090ce4 100644 --- a/implementors/core/marker/trait.Send.js +++ b/implementors/core/marker/trait.Send.js @@ -5,5 +5,6 @@ implementors["actix_limitation"] = [{"text":"impl Send for ProtoBufPayloadError","synthetic":true,"types":["actix_protobuf::ProtoBufPayloadError"]},{"text":"impl<T> Send for ProtoBuf<T>","synthetic":true,"types":["actix_protobuf::ProtoBuf"]},{"text":"impl Send for ProtoBufConfig","synthetic":true,"types":["actix_protobuf::ProtoBufConfig"]},{"text":"impl<T> !Send for ProtoBufMessage<T>","synthetic":true,"types":["actix_protobuf::ProtoBufMessage"]}]; implementors["actix_redis"] = [{"text":"impl Send for Command","synthetic":true,"types":["actix_redis::redis::Command"]},{"text":"impl !Send for RedisActor","synthetic":true,"types":["actix_redis::redis::RedisActor"]},{"text":"impl Send for Error","synthetic":true,"types":["actix_redis::Error"]}]; implementors["actix_session"] = [{"text":"impl Send for SessionLifecycle","synthetic":true,"types":["actix_session::config::SessionLifecycle"]},{"text":"impl Send for BrowserSession","synthetic":true,"types":["actix_session::config::BrowserSession"]},{"text":"impl Send for PersistentSession","synthetic":true,"types":["actix_session::config::PersistentSession"]},{"text":"impl Send for TtlExtensionPolicy","synthetic":true,"types":["actix_session::config::TtlExtensionPolicy"]},{"text":"impl Send for CookieContentSecurity","synthetic":true,"types":["actix_session::config::CookieContentSecurity"]},{"text":"impl<Store> Send for SessionMiddlewareBuilder<Store> where
    Store: Send
","synthetic":true,"types":["actix_session::config::SessionMiddlewareBuilder"]},{"text":"impl<Store> !Send for SessionMiddleware<Store>","synthetic":true,"types":["actix_session::middleware::SessionMiddleware"]},{"text":"impl !Send for Session","synthetic":true,"types":["actix_session::session::Session"]},{"text":"impl Send for SessionStatus","synthetic":true,"types":["actix_session::session::SessionStatus"]},{"text":"impl Send for SessionGetError","synthetic":true,"types":["actix_session::session::SessionGetError"]},{"text":"impl Send for SessionInsertError","synthetic":true,"types":["actix_session::session::SessionInsertError"]},{"text":"impl Send for LoadError","synthetic":true,"types":["actix_session::storage::interface::LoadError"]},{"text":"impl Send for SaveError","synthetic":true,"types":["actix_session::storage::interface::SaveError"]},{"text":"impl Send for UpdateError","synthetic":true,"types":["actix_session::storage::interface::UpdateError"]},{"text":"impl Send for SessionKey","synthetic":true,"types":["actix_session::storage::session_key::SessionKey"]},{"text":"impl Send for CookieSessionStore","synthetic":true,"types":["actix_session::storage::cookie::CookieSessionStore"]},{"text":"impl !Send for RedisActorSessionStore","synthetic":true,"types":["actix_session::storage::redis_actor::RedisActorSessionStore"]},{"text":"impl !Send for RedisActorSessionStoreBuilder","synthetic":true,"types":["actix_session::storage::redis_actor::RedisActorSessionStoreBuilder"]},{"text":"impl Send for RedisSessionStore","synthetic":true,"types":["actix_session::storage::redis_rs::RedisSessionStore"]},{"text":"impl Send for RedisSessionStoreBuilder","synthetic":true,"types":["actix_session::storage::redis_rs::RedisSessionStoreBuilder"]}]; +implementors["actix_settings"] = [{"text":"impl Send for AtError","synthetic":true,"types":["actix_settings::error::AtError"]},{"text":"impl Send for ActixSettings","synthetic":true,"types":["actix_settings::actix::ActixSettings"]},{"text":"impl Send for Address","synthetic":true,"types":["actix_settings::actix::Address"]},{"text":"impl Send for Mode","synthetic":true,"types":["actix_settings::actix::Mode"]},{"text":"impl Send for NumWorkers","synthetic":true,"types":["actix_settings::actix::NumWorkers"]},{"text":"impl Send for Backlog","synthetic":true,"types":["actix_settings::actix::Backlog"]},{"text":"impl Send for MaxConnections","synthetic":true,"types":["actix_settings::actix::MaxConnections"]},{"text":"impl Send for MaxConnectionRate","synthetic":true,"types":["actix_settings::actix::MaxConnectionRate"]},{"text":"impl Send for KeepAlive","synthetic":true,"types":["actix_settings::actix::KeepAlive"]},{"text":"impl Send for Timeout","synthetic":true,"types":["actix_settings::actix::Timeout"]},{"text":"impl Send for Tls","synthetic":true,"types":["actix_settings::actix::Tls"]},{"text":"impl<A> Send for BasicSettings<A> where
    A: Send
","synthetic":true,"types":["actix_settings::BasicSettings"]},{"text":"impl Send for NoSettings","synthetic":true,"types":["actix_settings::NoSettings"]}]; implementors["actix_web_httpauth"] = [{"text":"impl Send for Config","synthetic":true,"types":["actix_web_httpauth::extractors::basic::Config"]},{"text":"impl Send for BasicAuth","synthetic":true,"types":["actix_web_httpauth::extractors::basic::BasicAuth"]},{"text":"impl Send for Error","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::errors::Error"]},{"text":"impl Send for Config","synthetic":true,"types":["actix_web_httpauth::extractors::bearer::Config"]},{"text":"impl Send for BearerAuth","synthetic":true,"types":["actix_web_httpauth::extractors::bearer::BearerAuth"]},{"text":"impl<C> Send for AuthenticationError<C>","synthetic":true,"types":["actix_web_httpauth::extractors::errors::AuthenticationError"]},{"text":"impl Send for ParseError","synthetic":true,"types":["actix_web_httpauth::headers::authorization::errors::ParseError"]},{"text":"impl<S> Send for Authorization<S>","synthetic":true,"types":["actix_web_httpauth::headers::authorization::header::Authorization"]},{"text":"impl Send for Basic","synthetic":true,"types":["actix_web_httpauth::headers::authorization::scheme::basic::Basic"]},{"text":"impl Send for Bearer","synthetic":true,"types":["actix_web_httpauth::headers::authorization::scheme::bearer::Bearer"]},{"text":"impl Send for Basic","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::basic::Basic"]},{"text":"impl Send for BearerBuilder","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::builder::BearerBuilder"]},{"text":"impl Send for Bearer","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::challenge::Bearer"]},{"text":"impl<C> Send for WwwAuthenticate<C>","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::header::WwwAuthenticate"]},{"text":"impl<T, F> Send for HttpAuthentication<T, F> where
    F: Send + Sync,
    T: Send
","synthetic":true,"types":["actix_web_httpauth::middleware::HttpAuthentication"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.StructuralEq.js b/implementors/core/marker/trait.StructuralEq.js index 3eff5b9c2..2a027fe4b 100644 --- a/implementors/core/marker/trait.StructuralEq.js +++ b/implementors/core/marker/trait.StructuralEq.js @@ -1,4 +1,5 @@ (function() {var implementors = {}; implementors["actix_session"] = [{"text":"impl StructuralEq for SessionStatus","synthetic":false,"types":["actix_session::session::SessionStatus"]},{"text":"impl StructuralEq for SessionKey","synthetic":false,"types":["actix_session::storage::session_key::SessionKey"]}]; +implementors["actix_settings"] = [{"text":"impl StructuralEq for ActixSettings","synthetic":false,"types":["actix_settings::actix::ActixSettings"]},{"text":"impl StructuralEq for Address","synthetic":false,"types":["actix_settings::actix::Address"]},{"text":"impl StructuralEq for Mode","synthetic":false,"types":["actix_settings::actix::Mode"]},{"text":"impl StructuralEq for NumWorkers","synthetic":false,"types":["actix_settings::actix::NumWorkers"]},{"text":"impl StructuralEq for Backlog","synthetic":false,"types":["actix_settings::actix::Backlog"]},{"text":"impl StructuralEq for MaxConnections","synthetic":false,"types":["actix_settings::actix::MaxConnections"]},{"text":"impl StructuralEq for MaxConnectionRate","synthetic":false,"types":["actix_settings::actix::MaxConnectionRate"]},{"text":"impl StructuralEq for KeepAlive","synthetic":false,"types":["actix_settings::actix::KeepAlive"]},{"text":"impl StructuralEq for Timeout","synthetic":false,"types":["actix_settings::actix::Timeout"]},{"text":"impl StructuralEq for Tls","synthetic":false,"types":["actix_settings::actix::Tls"]},{"text":"impl<A> StructuralEq for BasicSettings<A>","synthetic":false,"types":["actix_settings::BasicSettings"]},{"text":"impl StructuralEq for NoSettings","synthetic":false,"types":["actix_settings::NoSettings"]}]; implementors["actix_web_httpauth"] = [{"text":"impl<S: Scheme> StructuralEq for Authorization<S>","synthetic":false,"types":["actix_web_httpauth::headers::authorization::header::Authorization"]},{"text":"impl StructuralEq for Basic","synthetic":false,"types":["actix_web_httpauth::headers::authorization::scheme::basic::Basic"]},{"text":"impl StructuralEq for Bearer","synthetic":false,"types":["actix_web_httpauth::headers::authorization::scheme::bearer::Bearer"]},{"text":"impl StructuralEq for Basic","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::basic::Basic"]},{"text":"impl StructuralEq for Bearer","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::challenge::Bearer"]},{"text":"impl StructuralEq for Error","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::errors::Error"]},{"text":"impl<C: Challenge> StructuralEq for WwwAuthenticate<C>","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::header::WwwAuthenticate"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.StructuralPartialEq.js b/implementors/core/marker/trait.StructuralPartialEq.js index c17734784..0f7a8821f 100644 --- a/implementors/core/marker/trait.StructuralPartialEq.js +++ b/implementors/core/marker/trait.StructuralPartialEq.js @@ -1,4 +1,5 @@ (function() {var implementors = {}; implementors["actix_session"] = [{"text":"impl StructuralPartialEq for SessionStatus","synthetic":false,"types":["actix_session::session::SessionStatus"]},{"text":"impl StructuralPartialEq for SessionKey","synthetic":false,"types":["actix_session::storage::session_key::SessionKey"]}]; +implementors["actix_settings"] = [{"text":"impl StructuralPartialEq for ActixSettings","synthetic":false,"types":["actix_settings::actix::ActixSettings"]},{"text":"impl StructuralPartialEq for Address","synthetic":false,"types":["actix_settings::actix::Address"]},{"text":"impl StructuralPartialEq for Mode","synthetic":false,"types":["actix_settings::actix::Mode"]},{"text":"impl StructuralPartialEq for NumWorkers","synthetic":false,"types":["actix_settings::actix::NumWorkers"]},{"text":"impl StructuralPartialEq for Backlog","synthetic":false,"types":["actix_settings::actix::Backlog"]},{"text":"impl StructuralPartialEq for MaxConnections","synthetic":false,"types":["actix_settings::actix::MaxConnections"]},{"text":"impl StructuralPartialEq for MaxConnectionRate","synthetic":false,"types":["actix_settings::actix::MaxConnectionRate"]},{"text":"impl StructuralPartialEq for KeepAlive","synthetic":false,"types":["actix_settings::actix::KeepAlive"]},{"text":"impl StructuralPartialEq for Timeout","synthetic":false,"types":["actix_settings::actix::Timeout"]},{"text":"impl StructuralPartialEq for Tls","synthetic":false,"types":["actix_settings::actix::Tls"]},{"text":"impl<A> StructuralPartialEq for BasicSettings<A>","synthetic":false,"types":["actix_settings::BasicSettings"]},{"text":"impl StructuralPartialEq for NoSettings","synthetic":false,"types":["actix_settings::NoSettings"]}]; implementors["actix_web_httpauth"] = [{"text":"impl<S: Scheme> StructuralPartialEq for Authorization<S>","synthetic":false,"types":["actix_web_httpauth::headers::authorization::header::Authorization"]},{"text":"impl StructuralPartialEq for Basic","synthetic":false,"types":["actix_web_httpauth::headers::authorization::scheme::basic::Basic"]},{"text":"impl StructuralPartialEq for Bearer","synthetic":false,"types":["actix_web_httpauth::headers::authorization::scheme::bearer::Bearer"]},{"text":"impl StructuralPartialEq for Basic","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::basic::Basic"]},{"text":"impl StructuralPartialEq for Bearer","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::challenge::Bearer"]},{"text":"impl StructuralPartialEq for Error","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::errors::Error"]},{"text":"impl<C: Challenge> StructuralPartialEq for WwwAuthenticate<C>","synthetic":false,"types":["actix_web_httpauth::headers::www_authenticate::header::WwwAuthenticate"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Sync.js b/implementors/core/marker/trait.Sync.js index 9c14a16bb..cafa34f7c 100644 --- a/implementors/core/marker/trait.Sync.js +++ b/implementors/core/marker/trait.Sync.js @@ -5,5 +5,6 @@ implementors["actix_limitation"] = [{"text":"impl Sync for ProtoBufPayloadError","synthetic":true,"types":["actix_protobuf::ProtoBufPayloadError"]},{"text":"impl<T> Sync for ProtoBuf<T>","synthetic":true,"types":["actix_protobuf::ProtoBuf"]},{"text":"impl Sync for ProtoBufConfig","synthetic":true,"types":["actix_protobuf::ProtoBufConfig"]},{"text":"impl<T> !Sync for ProtoBufMessage<T>","synthetic":true,"types":["actix_protobuf::ProtoBufMessage"]}]; implementors["actix_redis"] = [{"text":"impl Sync for Command","synthetic":true,"types":["actix_redis::redis::Command"]},{"text":"impl !Sync for RedisActor","synthetic":true,"types":["actix_redis::redis::RedisActor"]},{"text":"impl Sync for Error","synthetic":true,"types":["actix_redis::Error"]}]; implementors["actix_session"] = [{"text":"impl Sync for SessionLifecycle","synthetic":true,"types":["actix_session::config::SessionLifecycle"]},{"text":"impl Sync for BrowserSession","synthetic":true,"types":["actix_session::config::BrowserSession"]},{"text":"impl Sync for PersistentSession","synthetic":true,"types":["actix_session::config::PersistentSession"]},{"text":"impl Sync for TtlExtensionPolicy","synthetic":true,"types":["actix_session::config::TtlExtensionPolicy"]},{"text":"impl Sync for CookieContentSecurity","synthetic":true,"types":["actix_session::config::CookieContentSecurity"]},{"text":"impl<Store> Sync for SessionMiddlewareBuilder<Store> where
    Store: Sync
","synthetic":true,"types":["actix_session::config::SessionMiddlewareBuilder"]},{"text":"impl<Store> !Sync for SessionMiddleware<Store>","synthetic":true,"types":["actix_session::middleware::SessionMiddleware"]},{"text":"impl !Sync for Session","synthetic":true,"types":["actix_session::session::Session"]},{"text":"impl Sync for SessionStatus","synthetic":true,"types":["actix_session::session::SessionStatus"]},{"text":"impl Sync for SessionGetError","synthetic":true,"types":["actix_session::session::SessionGetError"]},{"text":"impl Sync for SessionInsertError","synthetic":true,"types":["actix_session::session::SessionInsertError"]},{"text":"impl Sync for LoadError","synthetic":true,"types":["actix_session::storage::interface::LoadError"]},{"text":"impl Sync for SaveError","synthetic":true,"types":["actix_session::storage::interface::SaveError"]},{"text":"impl Sync for UpdateError","synthetic":true,"types":["actix_session::storage::interface::UpdateError"]},{"text":"impl Sync for SessionKey","synthetic":true,"types":["actix_session::storage::session_key::SessionKey"]},{"text":"impl Sync for CookieSessionStore","synthetic":true,"types":["actix_session::storage::cookie::CookieSessionStore"]},{"text":"impl !Sync for RedisActorSessionStore","synthetic":true,"types":["actix_session::storage::redis_actor::RedisActorSessionStore"]},{"text":"impl !Sync for RedisActorSessionStoreBuilder","synthetic":true,"types":["actix_session::storage::redis_actor::RedisActorSessionStoreBuilder"]},{"text":"impl Sync for RedisSessionStore","synthetic":true,"types":["actix_session::storage::redis_rs::RedisSessionStore"]},{"text":"impl Sync for RedisSessionStoreBuilder","synthetic":true,"types":["actix_session::storage::redis_rs::RedisSessionStoreBuilder"]}]; +implementors["actix_settings"] = [{"text":"impl Sync for AtError","synthetic":true,"types":["actix_settings::error::AtError"]},{"text":"impl Sync for ActixSettings","synthetic":true,"types":["actix_settings::actix::ActixSettings"]},{"text":"impl Sync for Address","synthetic":true,"types":["actix_settings::actix::Address"]},{"text":"impl Sync for Mode","synthetic":true,"types":["actix_settings::actix::Mode"]},{"text":"impl Sync for NumWorkers","synthetic":true,"types":["actix_settings::actix::NumWorkers"]},{"text":"impl Sync for Backlog","synthetic":true,"types":["actix_settings::actix::Backlog"]},{"text":"impl Sync for MaxConnections","synthetic":true,"types":["actix_settings::actix::MaxConnections"]},{"text":"impl Sync for MaxConnectionRate","synthetic":true,"types":["actix_settings::actix::MaxConnectionRate"]},{"text":"impl Sync for KeepAlive","synthetic":true,"types":["actix_settings::actix::KeepAlive"]},{"text":"impl Sync for Timeout","synthetic":true,"types":["actix_settings::actix::Timeout"]},{"text":"impl Sync for Tls","synthetic":true,"types":["actix_settings::actix::Tls"]},{"text":"impl<A> Sync for BasicSettings<A> where
    A: Sync
","synthetic":true,"types":["actix_settings::BasicSettings"]},{"text":"impl Sync for NoSettings","synthetic":true,"types":["actix_settings::NoSettings"]}]; implementors["actix_web_httpauth"] = [{"text":"impl Sync for Config","synthetic":true,"types":["actix_web_httpauth::extractors::basic::Config"]},{"text":"impl Sync for BasicAuth","synthetic":true,"types":["actix_web_httpauth::extractors::basic::BasicAuth"]},{"text":"impl Sync for Error","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::errors::Error"]},{"text":"impl Sync for Config","synthetic":true,"types":["actix_web_httpauth::extractors::bearer::Config"]},{"text":"impl Sync for BearerAuth","synthetic":true,"types":["actix_web_httpauth::extractors::bearer::BearerAuth"]},{"text":"impl<C> Sync for AuthenticationError<C>","synthetic":true,"types":["actix_web_httpauth::extractors::errors::AuthenticationError"]},{"text":"impl Sync for ParseError","synthetic":true,"types":["actix_web_httpauth::headers::authorization::errors::ParseError"]},{"text":"impl<S> Sync for Authorization<S>","synthetic":true,"types":["actix_web_httpauth::headers::authorization::header::Authorization"]},{"text":"impl Sync for Basic","synthetic":true,"types":["actix_web_httpauth::headers::authorization::scheme::basic::Basic"]},{"text":"impl Sync for Bearer","synthetic":true,"types":["actix_web_httpauth::headers::authorization::scheme::bearer::Bearer"]},{"text":"impl Sync for Basic","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::basic::Basic"]},{"text":"impl Sync for BearerBuilder","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::builder::BearerBuilder"]},{"text":"impl Sync for Bearer","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::challenge::Bearer"]},{"text":"impl<C> Sync for WwwAuthenticate<C>","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::header::WwwAuthenticate"]},{"text":"impl<T, F> Sync for HttpAuthentication<T, F> where
    F: Send + Sync,
    T: Sync
","synthetic":true,"types":["actix_web_httpauth::middleware::HttpAuthentication"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Unpin.js b/implementors/core/marker/trait.Unpin.js index 0455788a0..ba030bc8c 100644 --- a/implementors/core/marker/trait.Unpin.js +++ b/implementors/core/marker/trait.Unpin.js @@ -5,5 +5,6 @@ implementors["actix_limitation"] = [{"text":"impl Unpin for ProtoBufPayloadError","synthetic":true,"types":["actix_protobuf::ProtoBufPayloadError"]},{"text":"impl<T> Unpin for ProtoBuf<T> where
    T: Unpin
","synthetic":true,"types":["actix_protobuf::ProtoBuf"]},{"text":"impl Unpin for ProtoBufConfig","synthetic":true,"types":["actix_protobuf::ProtoBufConfig"]},{"text":"impl<T> Unpin for ProtoBufMessage<T>","synthetic":true,"types":["actix_protobuf::ProtoBufMessage"]}]; implementors["actix_redis"] = [{"text":"impl Unpin for Command","synthetic":true,"types":["actix_redis::redis::Command"]},{"text":"impl Unpin for RedisActor","synthetic":true,"types":["actix_redis::redis::RedisActor"]},{"text":"impl Unpin for Error","synthetic":true,"types":["actix_redis::Error"]}]; implementors["actix_session"] = [{"text":"impl Unpin for SessionLifecycle","synthetic":true,"types":["actix_session::config::SessionLifecycle"]},{"text":"impl Unpin for BrowserSession","synthetic":true,"types":["actix_session::config::BrowserSession"]},{"text":"impl Unpin for PersistentSession","synthetic":true,"types":["actix_session::config::PersistentSession"]},{"text":"impl Unpin for TtlExtensionPolicy","synthetic":true,"types":["actix_session::config::TtlExtensionPolicy"]},{"text":"impl Unpin for CookieContentSecurity","synthetic":true,"types":["actix_session::config::CookieContentSecurity"]},{"text":"impl<Store> Unpin for SessionMiddlewareBuilder<Store> where
    Store: Unpin
","synthetic":true,"types":["actix_session::config::SessionMiddlewareBuilder"]},{"text":"impl<Store> Unpin for SessionMiddleware<Store>","synthetic":true,"types":["actix_session::middleware::SessionMiddleware"]},{"text":"impl Unpin for Session","synthetic":true,"types":["actix_session::session::Session"]},{"text":"impl Unpin for SessionStatus","synthetic":true,"types":["actix_session::session::SessionStatus"]},{"text":"impl Unpin for SessionGetError","synthetic":true,"types":["actix_session::session::SessionGetError"]},{"text":"impl Unpin for SessionInsertError","synthetic":true,"types":["actix_session::session::SessionInsertError"]},{"text":"impl Unpin for LoadError","synthetic":true,"types":["actix_session::storage::interface::LoadError"]},{"text":"impl Unpin for SaveError","synthetic":true,"types":["actix_session::storage::interface::SaveError"]},{"text":"impl Unpin for UpdateError","synthetic":true,"types":["actix_session::storage::interface::UpdateError"]},{"text":"impl Unpin for SessionKey","synthetic":true,"types":["actix_session::storage::session_key::SessionKey"]},{"text":"impl Unpin for CookieSessionStore","synthetic":true,"types":["actix_session::storage::cookie::CookieSessionStore"]},{"text":"impl Unpin for RedisActorSessionStore","synthetic":true,"types":["actix_session::storage::redis_actor::RedisActorSessionStore"]},{"text":"impl Unpin for RedisActorSessionStoreBuilder","synthetic":true,"types":["actix_session::storage::redis_actor::RedisActorSessionStoreBuilder"]},{"text":"impl Unpin for RedisSessionStore","synthetic":true,"types":["actix_session::storage::redis_rs::RedisSessionStore"]},{"text":"impl Unpin for RedisSessionStoreBuilder","synthetic":true,"types":["actix_session::storage::redis_rs::RedisSessionStoreBuilder"]}]; +implementors["actix_settings"] = [{"text":"impl Unpin for AtError","synthetic":true,"types":["actix_settings::error::AtError"]},{"text":"impl Unpin for ActixSettings","synthetic":true,"types":["actix_settings::actix::ActixSettings"]},{"text":"impl Unpin for Address","synthetic":true,"types":["actix_settings::actix::Address"]},{"text":"impl Unpin for Mode","synthetic":true,"types":["actix_settings::actix::Mode"]},{"text":"impl Unpin for NumWorkers","synthetic":true,"types":["actix_settings::actix::NumWorkers"]},{"text":"impl Unpin for Backlog","synthetic":true,"types":["actix_settings::actix::Backlog"]},{"text":"impl Unpin for MaxConnections","synthetic":true,"types":["actix_settings::actix::MaxConnections"]},{"text":"impl Unpin for MaxConnectionRate","synthetic":true,"types":["actix_settings::actix::MaxConnectionRate"]},{"text":"impl Unpin for KeepAlive","synthetic":true,"types":["actix_settings::actix::KeepAlive"]},{"text":"impl Unpin for Timeout","synthetic":true,"types":["actix_settings::actix::Timeout"]},{"text":"impl Unpin for Tls","synthetic":true,"types":["actix_settings::actix::Tls"]},{"text":"impl<A> Unpin for BasicSettings<A> where
    A: Unpin
","synthetic":true,"types":["actix_settings::BasicSettings"]},{"text":"impl Unpin for NoSettings","synthetic":true,"types":["actix_settings::NoSettings"]}]; implementors["actix_web_httpauth"] = [{"text":"impl Unpin for Config","synthetic":true,"types":["actix_web_httpauth::extractors::basic::Config"]},{"text":"impl Unpin for BasicAuth","synthetic":true,"types":["actix_web_httpauth::extractors::basic::BasicAuth"]},{"text":"impl Unpin for Error","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::errors::Error"]},{"text":"impl Unpin for Config","synthetic":true,"types":["actix_web_httpauth::extractors::bearer::Config"]},{"text":"impl Unpin for BearerAuth","synthetic":true,"types":["actix_web_httpauth::extractors::bearer::BearerAuth"]},{"text":"impl<C> Unpin for AuthenticationError<C> where
    C: Unpin
","synthetic":true,"types":["actix_web_httpauth::extractors::errors::AuthenticationError"]},{"text":"impl Unpin for ParseError","synthetic":true,"types":["actix_web_httpauth::headers::authorization::errors::ParseError"]},{"text":"impl<S> Unpin for Authorization<S> where
    S: Unpin
","synthetic":true,"types":["actix_web_httpauth::headers::authorization::header::Authorization"]},{"text":"impl Unpin for Basic","synthetic":true,"types":["actix_web_httpauth::headers::authorization::scheme::basic::Basic"]},{"text":"impl Unpin for Bearer","synthetic":true,"types":["actix_web_httpauth::headers::authorization::scheme::bearer::Bearer"]},{"text":"impl Unpin for Basic","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::basic::Basic"]},{"text":"impl Unpin for BearerBuilder","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::builder::BearerBuilder"]},{"text":"impl Unpin for Bearer","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::challenge::Bearer"]},{"text":"impl<C> Unpin for WwwAuthenticate<C> where
    C: Unpin
","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::header::WwwAuthenticate"]},{"text":"impl<T, F> Unpin for HttpAuthentication<T, F> where
    T: Unpin
","synthetic":true,"types":["actix_web_httpauth::middleware::HttpAuthentication"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js index 552455940..72ca53225 100644 --- a/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -5,5 +5,6 @@ implementors["actix_limitation"] = [{"text":"impl RefUnwindSafe for ProtoBufPayloadError","synthetic":true,"types":["actix_protobuf::ProtoBufPayloadError"]},{"text":"impl<T> RefUnwindSafe for ProtoBuf<T> where
    T: RefUnwindSafe
","synthetic":true,"types":["actix_protobuf::ProtoBuf"]},{"text":"impl RefUnwindSafe for ProtoBufConfig","synthetic":true,"types":["actix_protobuf::ProtoBufConfig"]},{"text":"impl<T> !RefUnwindSafe for ProtoBufMessage<T>","synthetic":true,"types":["actix_protobuf::ProtoBufMessage"]}]; implementors["actix_redis"] = [{"text":"impl RefUnwindSafe for Command","synthetic":true,"types":["actix_redis::redis::Command"]},{"text":"impl !RefUnwindSafe for RedisActor","synthetic":true,"types":["actix_redis::redis::RedisActor"]},{"text":"impl !RefUnwindSafe for Error","synthetic":true,"types":["actix_redis::Error"]}]; implementors["actix_session"] = [{"text":"impl RefUnwindSafe for SessionLifecycle","synthetic":true,"types":["actix_session::config::SessionLifecycle"]},{"text":"impl RefUnwindSafe for BrowserSession","synthetic":true,"types":["actix_session::config::BrowserSession"]},{"text":"impl RefUnwindSafe for PersistentSession","synthetic":true,"types":["actix_session::config::PersistentSession"]},{"text":"impl RefUnwindSafe for TtlExtensionPolicy","synthetic":true,"types":["actix_session::config::TtlExtensionPolicy"]},{"text":"impl RefUnwindSafe for CookieContentSecurity","synthetic":true,"types":["actix_session::config::CookieContentSecurity"]},{"text":"impl<Store> RefUnwindSafe for SessionMiddlewareBuilder<Store> where
    Store: RefUnwindSafe
","synthetic":true,"types":["actix_session::config::SessionMiddlewareBuilder"]},{"text":"impl<Store> RefUnwindSafe for SessionMiddleware<Store> where
    Store: RefUnwindSafe
","synthetic":true,"types":["actix_session::middleware::SessionMiddleware"]},{"text":"impl !RefUnwindSafe for Session","synthetic":true,"types":["actix_session::session::Session"]},{"text":"impl RefUnwindSafe for SessionStatus","synthetic":true,"types":["actix_session::session::SessionStatus"]},{"text":"impl !RefUnwindSafe for SessionGetError","synthetic":true,"types":["actix_session::session::SessionGetError"]},{"text":"impl !RefUnwindSafe for SessionInsertError","synthetic":true,"types":["actix_session::session::SessionInsertError"]},{"text":"impl !RefUnwindSafe for LoadError","synthetic":true,"types":["actix_session::storage::interface::LoadError"]},{"text":"impl !RefUnwindSafe for SaveError","synthetic":true,"types":["actix_session::storage::interface::SaveError"]},{"text":"impl !RefUnwindSafe for UpdateError","synthetic":true,"types":["actix_session::storage::interface::UpdateError"]},{"text":"impl RefUnwindSafe for SessionKey","synthetic":true,"types":["actix_session::storage::session_key::SessionKey"]},{"text":"impl RefUnwindSafe for CookieSessionStore","synthetic":true,"types":["actix_session::storage::cookie::CookieSessionStore"]},{"text":"impl !RefUnwindSafe for RedisActorSessionStore","synthetic":true,"types":["actix_session::storage::redis_actor::RedisActorSessionStore"]},{"text":"impl !RefUnwindSafe for RedisActorSessionStoreBuilder","synthetic":true,"types":["actix_session::storage::redis_actor::RedisActorSessionStoreBuilder"]},{"text":"impl !RefUnwindSafe for RedisSessionStore","synthetic":true,"types":["actix_session::storage::redis_rs::RedisSessionStore"]},{"text":"impl !RefUnwindSafe for RedisSessionStoreBuilder","synthetic":true,"types":["actix_session::storage::redis_rs::RedisSessionStoreBuilder"]}]; +implementors["actix_settings"] = [{"text":"impl RefUnwindSafe for AtError","synthetic":true,"types":["actix_settings::error::AtError"]},{"text":"impl RefUnwindSafe for ActixSettings","synthetic":true,"types":["actix_settings::actix::ActixSettings"]},{"text":"impl RefUnwindSafe for Address","synthetic":true,"types":["actix_settings::actix::Address"]},{"text":"impl RefUnwindSafe for Mode","synthetic":true,"types":["actix_settings::actix::Mode"]},{"text":"impl RefUnwindSafe for NumWorkers","synthetic":true,"types":["actix_settings::actix::NumWorkers"]},{"text":"impl RefUnwindSafe for Backlog","synthetic":true,"types":["actix_settings::actix::Backlog"]},{"text":"impl RefUnwindSafe for MaxConnections","synthetic":true,"types":["actix_settings::actix::MaxConnections"]},{"text":"impl RefUnwindSafe for MaxConnectionRate","synthetic":true,"types":["actix_settings::actix::MaxConnectionRate"]},{"text":"impl RefUnwindSafe for KeepAlive","synthetic":true,"types":["actix_settings::actix::KeepAlive"]},{"text":"impl RefUnwindSafe for Timeout","synthetic":true,"types":["actix_settings::actix::Timeout"]},{"text":"impl RefUnwindSafe for Tls","synthetic":true,"types":["actix_settings::actix::Tls"]},{"text":"impl<A> RefUnwindSafe for BasicSettings<A> where
    A: RefUnwindSafe
","synthetic":true,"types":["actix_settings::BasicSettings"]},{"text":"impl RefUnwindSafe for NoSettings","synthetic":true,"types":["actix_settings::NoSettings"]}]; implementors["actix_web_httpauth"] = [{"text":"impl RefUnwindSafe for Config","synthetic":true,"types":["actix_web_httpauth::extractors::basic::Config"]},{"text":"impl RefUnwindSafe for BasicAuth","synthetic":true,"types":["actix_web_httpauth::extractors::basic::BasicAuth"]},{"text":"impl RefUnwindSafe for Error","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::errors::Error"]},{"text":"impl RefUnwindSafe for Config","synthetic":true,"types":["actix_web_httpauth::extractors::bearer::Config"]},{"text":"impl RefUnwindSafe for BearerAuth","synthetic":true,"types":["actix_web_httpauth::extractors::bearer::BearerAuth"]},{"text":"impl<C> RefUnwindSafe for AuthenticationError<C> where
    C: RefUnwindSafe
","synthetic":true,"types":["actix_web_httpauth::extractors::errors::AuthenticationError"]},{"text":"impl RefUnwindSafe for ParseError","synthetic":true,"types":["actix_web_httpauth::headers::authorization::errors::ParseError"]},{"text":"impl<S> RefUnwindSafe for Authorization<S> where
    S: RefUnwindSafe
","synthetic":true,"types":["actix_web_httpauth::headers::authorization::header::Authorization"]},{"text":"impl RefUnwindSafe for Basic","synthetic":true,"types":["actix_web_httpauth::headers::authorization::scheme::basic::Basic"]},{"text":"impl RefUnwindSafe for Bearer","synthetic":true,"types":["actix_web_httpauth::headers::authorization::scheme::bearer::Bearer"]},{"text":"impl RefUnwindSafe for Basic","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::basic::Basic"]},{"text":"impl RefUnwindSafe for BearerBuilder","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::builder::BearerBuilder"]},{"text":"impl RefUnwindSafe for Bearer","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::challenge::Bearer"]},{"text":"impl<C> RefUnwindSafe for WwwAuthenticate<C> where
    C: RefUnwindSafe
","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::header::WwwAuthenticate"]},{"text":"impl<T, F> RefUnwindSafe for HttpAuthentication<T, F> where
    F: RefUnwindSafe,
    T: RefUnwindSafe
","synthetic":true,"types":["actix_web_httpauth::middleware::HttpAuthentication"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/implementors/core/panic/unwind_safe/trait.UnwindSafe.js index d2f8853e8..6bc58db3b 100644 --- a/implementors/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/implementors/core/panic/unwind_safe/trait.UnwindSafe.js @@ -5,5 +5,6 @@ implementors["actix_limitation"] = [{"text":"impl UnwindSafe for ProtoBufPayloadError","synthetic":true,"types":["actix_protobuf::ProtoBufPayloadError"]},{"text":"impl<T> UnwindSafe for ProtoBuf<T> where
    T: UnwindSafe
","synthetic":true,"types":["actix_protobuf::ProtoBuf"]},{"text":"impl UnwindSafe for ProtoBufConfig","synthetic":true,"types":["actix_protobuf::ProtoBufConfig"]},{"text":"impl<T> !UnwindSafe for ProtoBufMessage<T>","synthetic":true,"types":["actix_protobuf::ProtoBufMessage"]}]; implementors["actix_redis"] = [{"text":"impl UnwindSafe for Command","synthetic":true,"types":["actix_redis::redis::Command"]},{"text":"impl !UnwindSafe for RedisActor","synthetic":true,"types":["actix_redis::redis::RedisActor"]},{"text":"impl !UnwindSafe for Error","synthetic":true,"types":["actix_redis::Error"]}]; implementors["actix_session"] = [{"text":"impl UnwindSafe for SessionLifecycle","synthetic":true,"types":["actix_session::config::SessionLifecycle"]},{"text":"impl UnwindSafe for BrowserSession","synthetic":true,"types":["actix_session::config::BrowserSession"]},{"text":"impl UnwindSafe for PersistentSession","synthetic":true,"types":["actix_session::config::PersistentSession"]},{"text":"impl UnwindSafe for TtlExtensionPolicy","synthetic":true,"types":["actix_session::config::TtlExtensionPolicy"]},{"text":"impl UnwindSafe for CookieContentSecurity","synthetic":true,"types":["actix_session::config::CookieContentSecurity"]},{"text":"impl<Store> UnwindSafe for SessionMiddlewareBuilder<Store> where
    Store: UnwindSafe
","synthetic":true,"types":["actix_session::config::SessionMiddlewareBuilder"]},{"text":"impl<Store> UnwindSafe for SessionMiddleware<Store> where
    Store: RefUnwindSafe
","synthetic":true,"types":["actix_session::middleware::SessionMiddleware"]},{"text":"impl !UnwindSafe for Session","synthetic":true,"types":["actix_session::session::Session"]},{"text":"impl UnwindSafe for SessionStatus","synthetic":true,"types":["actix_session::session::SessionStatus"]},{"text":"impl !UnwindSafe for SessionGetError","synthetic":true,"types":["actix_session::session::SessionGetError"]},{"text":"impl !UnwindSafe for SessionInsertError","synthetic":true,"types":["actix_session::session::SessionInsertError"]},{"text":"impl !UnwindSafe for LoadError","synthetic":true,"types":["actix_session::storage::interface::LoadError"]},{"text":"impl !UnwindSafe for SaveError","synthetic":true,"types":["actix_session::storage::interface::SaveError"]},{"text":"impl !UnwindSafe for UpdateError","synthetic":true,"types":["actix_session::storage::interface::UpdateError"]},{"text":"impl UnwindSafe for SessionKey","synthetic":true,"types":["actix_session::storage::session_key::SessionKey"]},{"text":"impl UnwindSafe for CookieSessionStore","synthetic":true,"types":["actix_session::storage::cookie::CookieSessionStore"]},{"text":"impl !UnwindSafe for RedisActorSessionStore","synthetic":true,"types":["actix_session::storage::redis_actor::RedisActorSessionStore"]},{"text":"impl !UnwindSafe for RedisActorSessionStoreBuilder","synthetic":true,"types":["actix_session::storage::redis_actor::RedisActorSessionStoreBuilder"]},{"text":"impl !UnwindSafe for RedisSessionStore","synthetic":true,"types":["actix_session::storage::redis_rs::RedisSessionStore"]},{"text":"impl !UnwindSafe for RedisSessionStoreBuilder","synthetic":true,"types":["actix_session::storage::redis_rs::RedisSessionStoreBuilder"]}]; +implementors["actix_settings"] = [{"text":"impl UnwindSafe for AtError","synthetic":true,"types":["actix_settings::error::AtError"]},{"text":"impl UnwindSafe for ActixSettings","synthetic":true,"types":["actix_settings::actix::ActixSettings"]},{"text":"impl UnwindSafe for Address","synthetic":true,"types":["actix_settings::actix::Address"]},{"text":"impl UnwindSafe for Mode","synthetic":true,"types":["actix_settings::actix::Mode"]},{"text":"impl UnwindSafe for NumWorkers","synthetic":true,"types":["actix_settings::actix::NumWorkers"]},{"text":"impl UnwindSafe for Backlog","synthetic":true,"types":["actix_settings::actix::Backlog"]},{"text":"impl UnwindSafe for MaxConnections","synthetic":true,"types":["actix_settings::actix::MaxConnections"]},{"text":"impl UnwindSafe for MaxConnectionRate","synthetic":true,"types":["actix_settings::actix::MaxConnectionRate"]},{"text":"impl UnwindSafe for KeepAlive","synthetic":true,"types":["actix_settings::actix::KeepAlive"]},{"text":"impl UnwindSafe for Timeout","synthetic":true,"types":["actix_settings::actix::Timeout"]},{"text":"impl UnwindSafe for Tls","synthetic":true,"types":["actix_settings::actix::Tls"]},{"text":"impl<A> UnwindSafe for BasicSettings<A> where
    A: UnwindSafe
","synthetic":true,"types":["actix_settings::BasicSettings"]},{"text":"impl UnwindSafe for NoSettings","synthetic":true,"types":["actix_settings::NoSettings"]}]; implementors["actix_web_httpauth"] = [{"text":"impl UnwindSafe for Config","synthetic":true,"types":["actix_web_httpauth::extractors::basic::Config"]},{"text":"impl UnwindSafe for BasicAuth","synthetic":true,"types":["actix_web_httpauth::extractors::basic::BasicAuth"]},{"text":"impl UnwindSafe for Error","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::errors::Error"]},{"text":"impl UnwindSafe for Config","synthetic":true,"types":["actix_web_httpauth::extractors::bearer::Config"]},{"text":"impl UnwindSafe for BearerAuth","synthetic":true,"types":["actix_web_httpauth::extractors::bearer::BearerAuth"]},{"text":"impl<C> UnwindSafe for AuthenticationError<C> where
    C: UnwindSafe
","synthetic":true,"types":["actix_web_httpauth::extractors::errors::AuthenticationError"]},{"text":"impl UnwindSafe for ParseError","synthetic":true,"types":["actix_web_httpauth::headers::authorization::errors::ParseError"]},{"text":"impl<S> UnwindSafe for Authorization<S> where
    S: UnwindSafe
","synthetic":true,"types":["actix_web_httpauth::headers::authorization::header::Authorization"]},{"text":"impl UnwindSafe for Basic","synthetic":true,"types":["actix_web_httpauth::headers::authorization::scheme::basic::Basic"]},{"text":"impl UnwindSafe for Bearer","synthetic":true,"types":["actix_web_httpauth::headers::authorization::scheme::bearer::Bearer"]},{"text":"impl UnwindSafe for Basic","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::basic::Basic"]},{"text":"impl UnwindSafe for BearerBuilder","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::builder::BearerBuilder"]},{"text":"impl UnwindSafe for Bearer","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::challenge::bearer::challenge::Bearer"]},{"text":"impl<C> UnwindSafe for WwwAuthenticate<C> where
    C: UnwindSafe
","synthetic":true,"types":["actix_web_httpauth::headers::www_authenticate::header::WwwAuthenticate"]},{"text":"impl<T, F> UnwindSafe for HttpAuthentication<T, F> where
    F: RefUnwindSafe,
    T: UnwindSafe
","synthetic":true,"types":["actix_web_httpauth::middleware::HttpAuthentication"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/serde/de/trait.Deserialize.js b/implementors/serde/de/trait.Deserialize.js new file mode 100644 index 000000000..16d8b2c8d --- /dev/null +++ b/implementors/serde/de/trait.Deserialize.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["actix_settings"] = [{"text":"impl<'de> Deserialize<'de> for ActixSettings","synthetic":false,"types":["actix_settings::actix::ActixSettings"]},{"text":"impl<'de> Deserialize<'de> for Address","synthetic":false,"types":["actix_settings::actix::Address"]},{"text":"impl<'de> Deserialize<'de> for Mode","synthetic":false,"types":["actix_settings::actix::Mode"]},{"text":"impl<'de> Deserialize<'de> for NumWorkers","synthetic":false,"types":["actix_settings::actix::NumWorkers"]},{"text":"impl<'de> Deserialize<'de> for Backlog","synthetic":false,"types":["actix_settings::actix::Backlog"]},{"text":"impl<'de> Deserialize<'de> for MaxConnections","synthetic":false,"types":["actix_settings::actix::MaxConnections"]},{"text":"impl<'de> Deserialize<'de> for MaxConnectionRate","synthetic":false,"types":["actix_settings::actix::MaxConnectionRate"]},{"text":"impl<'de> Deserialize<'de> for KeepAlive","synthetic":false,"types":["actix_settings::actix::KeepAlive"]},{"text":"impl<'de> Deserialize<'de> for Timeout","synthetic":false,"types":["actix_settings::actix::Timeout"]},{"text":"impl<'de> Deserialize<'de> for Tls","synthetic":false,"types":["actix_settings::actix::Tls"]},{"text":"impl<'de, A> Deserialize<'de> for BasicSettings<A> where
    A: Deserialize<'de>, 
","synthetic":false,"types":["actix_settings::BasicSettings"]},{"text":"impl<'de> Deserialize<'de> for NoSettings","synthetic":false,"types":["actix_settings::NoSettings"]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/search-index.js b/search-index.js index 0731f1ab5..30968bfff 100644 --- a/search-index.js +++ b/search-index.js @@ -5,6 +5,7 @@ var searchIndex = JSON.parse('{\ "actix_protobuf":{"doc":"Protobuf payload extractor for Actix Web.","t":[12,13,13,13,13,3,3,3,4,8,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12],"n":["0","ContentType","Deserialize","Overflow","Payload","ProtoBuf","ProtoBufConfig","ProtoBufMessage","ProtoBufPayloadError","ProtoBufResponseBuilder","Serialize","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","default","deref","deref_mut","error_response","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_request","into","into","into","into","into_future","limit","limit","new","poll","protobuf","resource_path","respond_to","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_poll","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","0","0","0"],"q":["actix_protobuf","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_protobuf::ProtoBufPayloadError","",""],"d":["","Content type error","Deserialize error","Payload size is bigger than 256k","Payload error","","","","","","Serialize error","","","","","","","","","","","","","","","","","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).","","Change max size of payload. By default max size is 256Kb","Change max size of payload. By default max size is 256Kb","Create ProtoBufMessage for request.","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[3,4,4,4,4,0,0,0,0,0,4,3,1,14,4,3,1,14,4,1,3,3,4,3,3,4,4,3,1,14,4,4,4,3,3,1,14,4,14,1,14,14,14,23,3,3,3,4,3,1,14,4,3,1,14,4,14,3,1,14,4,3,1,14,4,24,25,26],"f":[0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[[3,[2]]]],[[[3,[2]]]],[4,5],[[[3,[2]],6],7],[[[3,[2]],6],7],[[4,6],7],[[4,6],7],[[]],[[]],[[]],[8,4],[[]],[9,4],[[10,11]],[[]],[[]],[[]],[[]],[[]],[[1,12],1],[[[14,[[0,[2,13]]]],12],[[14,[[0,[2,13]]]]]],[[10,11],[[14,[[0,[2,13]]]]]],[[[15,[[14,[[0,[2,13]]]]]],16],17],[2,[[19,[5,18]]]],[[],20],[[[3,[[0,[2,13]]]],10],5],[[],21],[[],21],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[15,16],17],[[],22],[[],22],[[],22],[[],22],[[]],[[]],[[]],[[]],0,0,0],"p":[[3,"ProtoBufConfig"],[8,"Message"],[3,"ProtoBuf"],[4,"ProtoBufPayloadError"],[3,"HttpResponse"],[3,"Formatter"],[6,"Result"],[4,"PayloadError"],[3,"DecodeError"],[3,"HttpRequest"],[4,"Payload"],[15,"usize"],[8,"Default"],[3,"ProtoBufMessage"],[3,"Pin"],[3,"Context"],[4,"Poll"],[3,"Error"],[4,"Result"],[3,"Path"],[3,"String"],[3,"TypeId"],[8,"ProtoBufResponseBuilder"],[13,"Serialize"],[13,"Deserialize"],[13,"Payload"]]},\ "actix_redis":{"doc":"Redis integration for actix.","t":[12,13,13,3,13,13,4,13,13,13,13,13,13,13,3,13,13,4,4,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,14,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12],"n":["0","Array","BulkString","Command","Connection","Disconnected","Error","Error","IO","Integer","Internal","Nil","NotConnected","Redis","RedisActor","Remote","Resp","RespError","RespValue","SimpleString","Unexpected","append","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","eq","equivalent","error","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_resp_int","handle","handle","into","into","into","into","into","ne","push","resp_array","restarting","source","source","start","started","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","0","0","0","0","0","0","0","1","0","0","0","0","0"],"q":["actix_redis","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_redis::Error","actix_redis::RespError","","","","","","","actix_redis::RespValue","","","",""],"d":["","Zero, one or more other RespValues.","A bulk string. In Redis terminology a string is a …","Command for sending data to Redis.","Error creating a connection, or an error with a connection …","Cancel all waiters when connection is dropped.","General purpose actix-redis error.","An error from the Redis server","An IO error occurred","Redis documentation defines an integer as being a signed …","A non-specific internal error that prevented an operation …","","Receiving message during reconnecting.","","Redis communication actor.","A remote error","A RESP parsing/serialising error occurred","","A single RESP value, this owns the data that is read/to-be …","","An unexpected error. In this context “unexpected” …","Convenience function for building dynamic Redis commands …","","","","","","","","","","","","","","","","","","","","","","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).","","Push item to Resp array","Macro to create a RESP array, useful for preparing …","","","","Start new Supervisor with RedisActor.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[7,1,1,0,13,10,0,1,13,1,13,1,10,10,0,13,13,0,0,1,13,1,4,7,10,1,13,4,7,10,1,13,1,1,1,1,4,7,10,10,1,13,13,4,7,10,10,1,1,1,1,1,1,1,1,13,13,13,1,4,4,4,7,10,1,13,1,1,0,4,10,13,4,4,1,10,13,4,7,10,1,13,4,7,10,1,13,4,7,10,1,13,4,7,10,1,13,28,29,30,31,32,33,34,31,35,36,37,38,39],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[1,2],1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[1,1],[[]],[[1,1],3],[[],3],[[4,5],6],[[7,8],9],[[10,8],9],[[10,8],9],[[1,8],[[12,[11]]]],[[13,8],[[12,[11]]]],[[13,8],[[12,[11]]]],[[]],[[]],[13,10],[[]],[[],1],[[]],[14,1],[[[17,[15,16]]],1],[18,1],[14,1],[19,1],[[[20,[18]]],1],[[]],[21,13],[5,13],[1,[[12,[1,13]]]],[[4,[12,[1,13]]]],[[4,7]],[[]],[[]],[[]],[[]],[[]],[[1,1],3],[1],0,[4],[10,[[23,[22]]]],[13,[[23,[22]]]],[[[24,[14]]],[[25,[4]]]],[[4,26]],[[]],[[],14],[[],14],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],27],[[],27],[[],27],[[],27],[[],27],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0],"p":[[4,"RespValue"],[8,"IntoIterator"],[15,"bool"],[3,"RedisActor"],[3,"Error"],[4,"Running"],[3,"Command"],[3,"Formatter"],[6,"Result"],[4,"Error"],[3,"Error"],[4,"Result"],[4,"RespError"],[3,"String"],[15,"u8"],[3,"Global"],[3,"Vec"],[15,"str"],[15,"usize"],[3,"Arc"],[3,"TrySendError"],[8,"Error"],[4,"Option"],[8,"Into"],[3,"Addr"],[3,"Context"],[3,"TypeId"],[13,"Redis"],[13,"Internal"],[13,"IO"],[13,"Resp"],[13,"Remote"],[13,"Connection"],[13,"Unexpected"],[13,"Array"],[13,"BulkString"],[13,"Error"],[13,"Integer"],[13,"SimpleString"]]},\ "actix_session":{"doc":"Session management for Actix Web.","t":[13,13,13,3,8,3,3,3,4,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,13,4,13,13,3,13,13,4,3,13,4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,3,13,4,13,13,13,3,3,3,3,4,13,13,3,8,4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12],"n":["Changed","Purged","Renewed","Session","SessionExt","SessionGetError","SessionInsertError","SessionMiddleware","SessionStatus","Unchanged","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","builder","clear","clone","clone","clone","clone_into","clone_into","clone_into","config","default","entries","eq","equivalent","error_response","error_response","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_request","get","get_session","insert","into","into","into","into","into","new","new_transform","purge","remove","remove_as","renew","source","source","status","storage","to_owned","to_owned","to_owned","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","BrowserSession","BrowserSession","CookieContentSecurity","OnEveryRequest","OnStateChanges","PersistentSession","PersistentSession","Private","SessionLifecycle","SessionMiddlewareBuilder","Signed","TtlExtensionPolicy","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cookie_content_security","cookie_domain","cookie_http_only","cookie_name","cookie_path","cookie_same_site","cookie_secure","default","default","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","into","into","into","into","into","into","session_lifecycle","session_ttl","session_ttl_extension_policy","state_ttl","state_ttl_extension_policy","to_owned","to_owned","to_owned","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","0","0","CookieSessionStore","Deserialization","LoadError","Other","Other","Other","RedisActorSessionStore","RedisActorSessionStoreBuilder","RedisSessionStore","RedisSessionStoreBuilder","SaveError","Serialization","Serialization","SessionKey","SessionStore","UpdateError","as_ref","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","build","build","builder","builder","cache_keygen","cache_keygen","clone","clone_into","default","delete","delete","delete","delete","eq","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into","into","load","load","load","load","ne","new","new","save","save","save","save","source","source","source","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","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update","update","update","update","update_ttl","update_ttl","update_ttl","update_ttl","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","0","0","0","0","0","0"],"q":["actix_session","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_session::config","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_session::config::SessionLifecycle","","actix_session::storage","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_session::storage::LoadError","","actix_session::storage::SaveError","","actix_session::storage::UpdateError",""],"d":["Session state has been updated - the changes will have to …","The session has been flagged for deletion - the session …","The session has been flagged for renewal.","The primary interface to access and modify session state.","Extract a Session object from various actix-web types …","Error returned by Session::get.","Error returned by Session::insert.","A middleware for session management in Actix Web …","Status of a Session.","The session state has not been modified since its …","","","","","","","","","","","A fluent API to configure SessionMiddleware.","Clear the session.","","","","","","","Configuration options to tune the behaviour of …","","Get all raw key-value data from the session.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Get a value from the session.","Extract a Session object.","Inserts a key-value pair into the session.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Use SessionMiddleware::new to initialize the session …","","Removes session both client and server side.","Remove value from the session.","Remove value from the session and deserialize.","Renews the session key, assigning existing session state …","","","Returns session status.","Pluggable storage backends for session state.","","","","","","","","","","","","","","","","","","","","","","","","","","A session lifecycle strategy where the session cookie …","The session cookie will expire when the current browser …","Determines how to secure the content of the session cookie.","The TTL is refreshed every time the server receives a …","The TTL is refreshed every time the session state changes …","A session lifecycle strategy where the session cookie will …","The session cookie will be a persistent cookie.","The cookie content is encrypted when using …","Determines what type of session cookie should be used and …","A fluent builder to construct a SessionMiddleware instance …","The cookie content is signed when using …","Configuration for which events should trigger an extension …","","","","","","","","","","","","","Finalise the builder and return a SessionMiddleware …","","","","","","","","","","","Choose how the session cookie content should be secured.","Set the Domain attribute for the cookie used to store the …","Set the HttpOnly attribute for the cookie used to store …","Set the name of the cookie used to store the session ID.","Set the Path attribute for the cookie used to store the …","Set the SameSite attribute for the cookie used to store …","Set the Secure attribute for the cookie used to store the …","","","","","","","","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).","Determines what type of session cookie should be used and …","Specifies how long the session cookie should live.","Determines under what circumstances the TTL of your …","Sets a time-to-live (TTL) when storing the session state …","Determine under what circumstances the TTL of your session …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Use the session key, stored in the session cookie, as …","Failed to deserialize session state.","Possible failures modes for SessionStore::load.","Something went wrong when retrieving the session state.","Something went wrong when persisting the session state.","Something went wrong when updating the session state.","Use Redis as session storage backend.","A fluent builder to construct a RedisActorSessionStore …","Use Redis as session storage backend.","A fluent builder to construct a RedisSessionStore instance …","Possible failures modes for SessionStore::save.","Failed to serialize session state.","Failed to serialize session state.","A session key, the string stored in a client-side cookie …","The interface to retrieve and save the current session …","Possible failures modes for SessionStore::update.","","","","","","","","","","","","","","","","","","","","Finalise the builder and return a RedisActorSessionStore …","Finalise the builder and return a RedisActorSessionStore …","A fluent API to configure RedisActorSessionStore.","A fluent API to configure RedisSessionStore. It takes as …","Set a custom cache key generation strategy, expecting a …","Set a custom cache key generation strategy, expecting a …","","","","Deletes a session from the store.","","","","","","","","","","","","","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).","Loads the session state associated to a session key.","","","","","Create a new instance of RedisActorSessionStore using the …","Create a new instance of RedisSessionStore using the …","Persist the session state for a newly created session.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Updates the session state associated to a pre-existing …","","","","Updates the TTL of the session state associated to a …","","","","","","","","","","","","","","","","","",""],"i":[7,7,7,0,0,0,0,0,0,7,6,4,7,12,15,6,4,7,12,15,6,4,6,4,7,6,4,7,0,7,4,7,7,12,15,7,12,12,15,15,6,4,7,12,12,15,15,4,4,48,4,6,4,7,12,15,6,6,4,4,4,4,12,15,4,0,6,4,7,12,15,6,4,7,12,15,6,4,7,12,15,6,4,7,12,15,6,4,7,12,15,0,29,0,32,32,0,29,33,0,0,33,0,3,29,30,31,32,33,3,29,30,31,32,33,3,29,30,31,32,33,29,30,31,32,33,3,3,3,3,3,3,3,30,31,29,30,31,32,33,3,29,29,29,30,31,32,33,3,29,30,31,32,33,3,31,31,30,30,29,30,31,32,33,3,29,30,31,32,33,3,29,30,31,32,33,3,29,30,31,32,33,3,29,30,31,32,33,49,50,0,45,0,45,46,47,0,0,0,0,0,46,47,0,0,0,36,38,37,39,45,46,47,36,42,41,38,37,39,45,46,47,36,42,41,37,39,38,41,37,39,41,41,42,1,38,42,41,36,36,45,45,46,46,47,47,36,38,37,39,45,46,47,36,42,41,38,37,39,45,46,47,36,42,41,1,38,42,41,36,38,41,1,38,42,41,45,46,47,41,45,46,47,38,37,39,45,46,47,36,36,42,41,38,37,39,45,46,47,36,42,41,38,37,39,45,46,47,36,42,41,1,38,42,41,1,38,42,41,38,37,39,45,46,47,36,42,41,51,52,53,54,55,56],"f":[0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[1,2],[[3,[1]]]],[4],[[[6,[[0,[5,1]]]]],[[6,[[0,[5,1]]]]]],[4,4],[7,7],[[]],[[]],[[]],0,[[],7],[4,[[10,[[9,[8,8]]]]]],[[7,7],11],[[],11],[12,[[14,[13]]]],[15,[[14,[13]]]],[[7,16],17],[[12,16],17],[[12,16],17],[[15,16],17],[[15,16],17],[[]],[[]],[[]],[18,12],[[]],[18,15],[[]],[[19,20]],[[4,21],[[24,[[23,[22]],12]]]],[[],4],[[4,[25,[8]],26],[[24,[15]]]],[[]],[[]],[[]],[[]],[[]],[[1,2],[[6,[1]]]],[6],[4],[[4,21],[[23,[8]]]],[[4,21],[[23,[[24,[22,8]]]]]],[4],[12,[[23,[27]]]],[15,[[23,[27]]]],[4,7],0,[[]],[[]],[[]],[[],8],[[],8],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],28],[[],28],[[],28],[[],28],[[],28],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[3,[1]]],[[6,[1]]]],[29,29],[30,30],[31,31],[32,32],[33,33],[[]],[[]],[[]],[[]],[[]],[[[3,[1]],33],[[3,[1]]]],[[[3,[1]],[23,[8]]],[[3,[1]]]],[[[3,[1]],11],[[3,[1]]]],[[[3,[1]],8],[[3,[1]]]],[[[3,[1]],8],[[3,[1]]]],[[[3,[1]],34],[[3,[1]]]],[[[3,[1]],11],[[3,[1]]]],[[],30],[[],31],[[29,16],17],[[30,16],17],[[31,16],17],[[32,16],17],[[33,16],17],[[]],[[]],[30,29],[31,29],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[3,[1]],[25,[29]]],[[3,[1]]]],[[31,35],31],[[31,32],31],[[30,35],30],[[30,32],30],[[]],[[]],[[]],[[]],[[]],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],28],[[],28],[[],28],[[],28],[[],28],[[],28],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[36,21],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[37,38],[39,40],[[[25,[8]]],37],[[[25,[8]]],39],[37,37],[39,39],[41,41],[[]],[[],42],[36,[[44,[[43,[40]]]]]],[[38,36],[[44,[[43,[40]]]]]],[[42,36],[[44,[[43,[40]]]]]],[[41,36],[[44,[[43,[40]]]]]],[[36,36],11],[[],11],[[45,16],17],[[45,16],17],[[46,16],17],[[46,16],17],[[47,16],17],[[47,16],17],[[36,16],17],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[36,[[44,[[43,[40]]]]]],[[38,36],[[44,[[43,[40]]]]]],[[42,36],[[44,[[43,[40]]]]]],[[41,36],[[44,[[43,[40]]]]]],[[36,36],11],[[[25,[8]]],38],[[[25,[8]]],40],[[[9,[8,8]],35],[[44,[[43,[40]]]]]],[[38,[9,[8,8]],35],[[44,[[43,[40]]]]]],[[42,[9,[8,8]],35],[[44,[[43,[40]]]]]],[[41,[9,[8,8]],35],[[44,[[43,[40]]]]]],[45,[[23,[27]]]],[46,[[23,[27]]]],[47,[[23,[27]]]],[[]],[[],8],[[],8],[[],8],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[8,[[24,[36]]]],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],28],[[],28],[[],28],[[],28],[[],28],[[],28],[[],28],[[],28],[[],28],[[36,[9,[8,8]],35],[[44,[[43,[40]]]]]],[[38,36,[9,[8,8]],35],[[44,[[43,[40]]]]]],[[42,36,[9,[8,8]],35],[[44,[[43,[40]]]]]],[[41,36,[9,[8,8]],35],[[44,[[43,[40]]]]]],[[36,35],[[44,[[43,[40]]]]]],[[38,36,35],[[44,[[43,[40]]]]]],[[42,36,35],[[44,[[43,[40]]]]]],[[41,36,35],[[44,[[43,[40]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0],"p":[[8,"SessionStore"],[3,"Key"],[3,"SessionMiddlewareBuilder"],[3,"Session"],[8,"Clone"],[3,"SessionMiddleware"],[4,"SessionStatus"],[3,"String"],[3,"HashMap"],[3,"Ref"],[15,"bool"],[3,"SessionGetError"],[3,"BoxBody"],[3,"HttpResponse"],[3,"SessionInsertError"],[3,"Formatter"],[6,"Result"],[3,"Error"],[3,"HttpRequest"],[4,"Payload"],[15,"str"],[8,"DeserializeOwned"],[4,"Option"],[4,"Result"],[8,"Into"],[8,"Serialize"],[8,"Error"],[3,"TypeId"],[4,"SessionLifecycle"],[3,"BrowserSession"],[3,"PersistentSession"],[4,"TtlExtensionPolicy"],[4,"CookieContentSecurity"],[4,"SameSite"],[3,"Duration"],[3,"SessionKey"],[3,"RedisActorSessionStoreBuilder"],[3,"RedisActorSessionStore"],[3,"RedisSessionStoreBuilder"],[8,"Future"],[3,"RedisSessionStore"],[3,"CookieSessionStore"],[3,"Box"],[3,"Pin"],[4,"LoadError"],[4,"SaveError"],[4,"UpdateError"],[8,"SessionExt"],[13,"BrowserSession"],[13,"PersistentSession"],[13,"Deserialization"],[13,"Other"],[13,"Serialization"],[13,"Other"],[13,"Serialization"],[13,"Other"]]},\ +"actix_settings":{"doc":"","t":[3,3,8,4,6,4,3,13,13,13,13,13,13,13,13,13,13,13,13,4,13,13,13,13,4,4,13,4,3,4,13,8,13,13,13,13,13,13,6,4,3,13,12,12,10,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,12,11,11,10,11,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12],"n":["ActixSettings","Address","ApplySettings","AtError","AtResult","Backlog","BasicSettings","Default","Default","Default","Default","Default","Default","Development","Disabled","EnvVarError","FileExists","InvalidValue","IoError","KeepAlive","Manual","Manual","Manual","Manual","MaxConnectionRate","MaxConnections","Milliseconds","Mode","NoSettings","NumWorkers","Os","Parse","ParseAddressError","ParseBoolError","ParseIntError","Production","Seconds","Seconds","Settings","Timeout","Tls","TomlError","actix","application","apply_settings","backlog","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","certificate","client_shutdown","client_timeout","clone","clone","clone","clone","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","clone_into","clone_into","clone_into","clone_into","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","enable_compression","enable_log","enabled","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","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_default_template","from_template","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","host","hosts","into","into","into","into","into","into","into","into","into","into","into","into","into","keep_alive","max_connection_rate","max_connections","mode","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","num_workers","override_field","override_field_with_env_var","parse","parse","parse","parse","parse","parse","parse","parse","parse","parse_toml","port","private_key","shutdown_timeout","tls","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","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","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","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write_toml_file","0","0","0","0","0","0","0","column","expected","file","got","line","0","0","0","0","0","0","0"],"q":["actix_settings","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_settings::AtError","","","","","","","","","","","","actix_settings::Backlog","actix_settings::KeepAlive","actix_settings::MaxConnectionRate","actix_settings::MaxConnections","actix_settings::NumWorkers","actix_settings::Timeout",""],"d":["Settings types for Actix Web.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Apply a BasicSettings value to 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.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Parse an instance of Self straight from the default TOML …","Parse an instance of Self straight from the default TOML …","","","","","","","","","","","","","","","","","","","","","","","","","","","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).","","","","","","","","","","","","","","","","","","","","","","","","","","","Parse an instance of Self from a TOML file located at …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Write the default TOML template to a new file, to be …","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,6,7,8,9,10,11,5,10,2,2,2,2,0,6,7,8,9,0,0,11,0,0,0,10,0,2,2,2,5,10,11,0,0,0,2,1,1,32,3,2,3,4,5,6,7,8,9,10,11,12,1,14,2,3,4,5,6,7,8,9,10,11,12,1,14,12,3,3,2,3,4,5,6,7,8,9,10,11,12,1,14,2,3,4,5,6,7,8,9,10,11,12,1,14,3,4,5,6,7,8,9,10,11,12,1,14,3,3,12,3,4,5,6,7,8,9,10,11,12,1,14,3,4,5,6,7,8,9,10,11,12,1,14,2,3,4,5,6,7,8,9,10,11,12,1,14,2,2,2,2,2,2,2,3,4,5,6,7,8,9,10,11,12,1,14,1,1,3,4,5,6,7,8,9,10,11,12,1,14,3,4,5,6,7,8,9,10,11,12,1,14,4,3,2,3,4,5,6,7,8,9,10,11,12,1,14,3,3,3,3,3,4,6,7,8,9,10,11,12,1,3,1,1,33,4,5,6,7,8,9,10,11,1,4,12,3,3,2,3,4,5,6,7,8,9,10,11,12,1,14,2,3,4,5,6,7,8,9,10,11,12,1,14,2,3,4,5,6,7,8,9,10,11,12,1,14,2,3,4,5,6,7,8,9,10,11,12,1,14,2,3,4,5,6,7,8,9,10,11,12,1,14,1,34,35,36,37,38,39,40,41,41,41,41,41,42,43,44,45,46,47,48],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10],[11,11],[12,12],[[[1,[13]]],[[1,[13]]]],[14,14],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[15,[3]]]],[[],[[15,[4]]]],[[],[[15,[5]]]],[[],[[15,[6]]]],[[],[[15,[7]]]],[[],[[15,[8]]]],[[],[[15,[9]]]],[[],[[15,[10]]]],[[],[[15,[11]]]],[[],[[15,[12]]]],[[],[[15,[1]]]],[[],[[15,[14]]]],0,0,0,[[3,3],16],[[4,4],16],[[5,5],16],[[6,6],16],[[7,7],16],[[8,8],16],[[9,9],16],[[10,10],16],[[11,11],16],[[12,12],16],[[[1,[17]],1],16],[[14,14],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[2,18],19],[[3,18],19],[[4,18],19],[[5,18],19],[[6,18],19],[[7,18],19],[[8,18],19],[[9,18],19],[[10,18],19],[[11,18],19],[[12,18],19],[[[1,[20]],18],19],[[14,18],19],[[]],[21,2],[22,2],[23,2],[24,2],[25,2],[26,2],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[27,[1]]]],[28,[[27,[1]]]],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[[[1,[30]]]],[14],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,[[3,3],16],[[4,4],16],[[6,6],16],[[7,7],16],[[8,8],16],[[9,9],16],[[10,10],16],[[11,11],16],[[12,12],16],[[[1,[17]],1],16],0,[[],27],[[],27],[28,[[15,[2]]]],[28,[[15,[4,2]]]],[28,[[15,[5,2]]]],[28,[[15,[6,2]]]],[28,[[15,[7,2]]]],[28,[[15,[8,2]]]],[28,[[15,[9,2]]]],[28,[[15,[10,2]]]],[28,[[15,[11,2]]]],[[],[[27,[1]]]],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[],31],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],27],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"p":[[3,"BasicSettings"],[4,"AtError"],[3,"ActixSettings"],[3,"Address"],[4,"Mode"],[4,"NumWorkers"],[4,"Backlog"],[4,"MaxConnections"],[4,"MaxConnectionRate"],[4,"KeepAlive"],[4,"Timeout"],[3,"Tls"],[8,"Clone"],[3,"NoSettings"],[4,"Result"],[15,"bool"],[8,"PartialEq"],[3,"Formatter"],[6,"Result"],[8,"Debug"],[3,"ParseBoolError"],[3,"ParseIntError"],[3,"Error"],[4,"VarError"],[3,"IoError"],[3,"Error"],[6,"AtResult"],[15,"str"],[15,"u64"],[8,"Hash"],[3,"TypeId"],[8,"ApplySettings"],[8,"Parse"],[13,"EnvVarError"],[13,"FileExists"],[13,"IoError"],[13,"ParseBoolError"],[13,"ParseIntError"],[13,"ParseAddressError"],[13,"TomlError"],[13,"InvalidValue"],[13,"Manual"],[13,"Seconds"],[13,"Manual"],[13,"Manual"],[13,"Manual"],[13,"Milliseconds"],[13,"Seconds"]]},\ "actix_web_httpauth":{"doc":"HTTP authentication schemes for Actix Web.","t":[0,0,0,8,3,16,0,0,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,4,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,3,13,3,3,13,13,13,4,8,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,8,3,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,4,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["extractors","headers","middleware","AuthExtractorConfig","AuthenticationError","Inner","basic","bearer","borrow","borrow_mut","challenge_mut","error_response","fmt","fmt","from","from","into","into_inner","new","status_code","status_code_mut","to_string","try_from","try_into","type_id","vzip","with_error","with_error_description","with_error_uri","BasicAuth","Config","as_ref","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","default","fmt","fmt","from","from","from_request","into","into","into_inner","password","realm","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","user_id","vzip","vzip","BearerAuth","Config","Error","InsufficientScope","InvalidRequest","InvalidToken","as_ref","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","default","eq","equivalent","fmt","fmt","fmt","fmt","from","from","from","from_request","get_hash","hash","into","into","into","into_inner","partial_cmp","realm","scope","status_code","to_owned","to_owned","to_owned","to_string","token","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","authorization","www_authenticate","Authorization","Base64DecodeError","Basic","Bearer","Invalid","MissingField","MissingScheme","ParseError","Scheme","ToStrError","Utf8Error","as_mut","as_ref","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","cmp","default","eq","eq","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","get_hash","hash","into","into","into","into","into_scheme","name","ne","ne","ne","new","new","parse","parse","parse","parse","partial_cmp","partial_cmp","partial_cmp","password","source","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","token","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into_pair","try_into_value","try_into_value","try_into_value","type_id","type_id","type_id","type_id","user_id","vzip","vzip","vzip","vzip","0","0","0","0","0","Challenge","WwwAuthenticate","basic","bearer","borrow","borrow_mut","clone","clone_into","cmp","default","eq","equivalent","fmt","from","get_hash","hash","into","name","ne","parse","partial_cmp","to_bytes","to_owned","try_from","try_into","try_into_pair","try_into_value","type_id","vzip","Basic","borrow","borrow_mut","clone","clone_into","cmp","default","eq","equivalent","fmt","fmt","from","get_hash","hash","into","ne","new","partial_cmp","to_owned","to_string","try_from","try_into","try_into_value","type_id","vzip","with_realm","Bearer","BearerBuilder","Error","InsufficientScope","InvalidRequest","InvalidToken","borrow","borrow","borrow_mut","borrow_mut","build","clone","clone_into","cmp","default","default","eq","equivalent","error","error_description","error_uri","finish","fmt","fmt","fmt","from","from","get_hash","hash","into","into","ne","partial_cmp","realm","scope","to_owned","to_string","try_from","try_from","try_into","try_into","try_into_value","type_id","type_id","vzip","vzip","HttpAuthentication","basic","bearer","borrow","borrow_mut","clone","clone_into","fmt","from","into","new_transform","to_owned","try_from","try_into","type_id","vzip","with_fn"],"q":["actix_web_httpauth","","","actix_web_httpauth::extractors","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::extractors::basic","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::extractors::bearer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::headers","","actix_web_httpauth::headers::authorization","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::headers::authorization::ParseError","","","","actix_web_httpauth::headers::www_authenticate","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::headers::www_authenticate::basic","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::headers::www_authenticate::bearer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::middleware","","","","","","","","","","","","","","","",""],"d":["Type-safe authentication information extractors.","Typed HTTP headers.","HTTP Authentication middleware.","Trait implemented for types that provides configuration …","Authentication error returned by authentication extractors.","Associated challenge type.","Extractor for the “Basic” HTTP Authentication Scheme.","Extractor for the “Bearer” HTTP Authentication Scheme.","","","Returns mutable reference to the inner challenge instance.","","","","","Returns the argument unchanged.","Calls U::from(self).","Convert the config instance into a HTTP challenge.","Creates new authentication error from the provided …","","Returns mutable reference to the inner status code.","","","","","","Attach Error to the current Authentication error.","Attach error description to the current Authentication …","Attach error URI to the current Authentication error.","Extractor for HTTP Basic auth.","BasicAuth extractor configuration used for WWW-Authenticate…","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","Returns client’s password.","Set challenge realm attribute.","","","","","","","","","Returns client’s user-ID.","","","Extractor for HTTP Bearer auth","BearerAuth extractor configuration.","Bearer authorization error types, described in RFC 6750.","The request requires higher privileges than provided by …","The request is missing a required parameter, includes an …","The access token provided is expired, revoked, malformed, …","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Set challenge realm attribute.","Set challenge scope attribute.","Returns HTTP status code suitable for current error type.","","","","","Returns bearer token provided by client.","","","","","","","","","","","","","Authorization header and various auth schemes.","WWW-Authenticate header and various auth challenges.","Authorization header, defined in RFC 7235","Malformed base64 string.","Credentials for Basic authentication scheme, defined in …","Credentials for Bearer authentication scheme, defined in …","Header value is malformed.","Required authentication field is missing.","Authentication scheme is missing.","Possible errors while parsing Authorization header.","Authentication scheme for Authorization header.","Unable to convert header into the str.","Malformed UTF-8 string.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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).","Consumes Authorization header and returns inner Scheme …","","","","","Creates Basic credentials with provided user_id and …","Creates new Bearer credentials with the token provided.","Try to parse an authentication scheme from the …","","","","","","","Returns client’s password if provided.","","","","","","","","","Gets reference to the credentials token.","","","","","","","","","","","","","","","","","Returns client’s user-ID.","","","","","","","","","","Authentication challenge for WWW-Authenticate header.","WWW-Authenticate header, described in RFC 7235.","Challenge for the “Basic” HTTP Authentication Scheme.","Challenge for the “Bearer” HTTP Authentication Scheme.","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","Converts the challenge into a bytes suitable for HTTP …","","","","","","","","Challenge for WWW-Authenticate header with HTTP Basic auth …","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","Creates new Basic challenge with an empty realm field.","","","","","","","","","Creates new Basic challenge from the provided realm field …","Challenge for WWW-Authenticate header with HTTP Bearer …","Builder for the Bearer challenge.","Bearer authorization error types, described in RFC 6750.","The request requires higher privileges than provided by …","The request is missing a required parameter, includes an …","The access token provided is expired, revoked, malformed, …","","","","","Creates the builder for Bearer challenge.","","","","","","","","Provides the error attribute, as defined in [RFC 6750, …","Provides the error_description attribute, as defined in […","Provides the error_uri attribute, as defined in [RFC 6750 …","Consumes the builder and returns built Bearer instance.","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","Provides the realm attribute, as defined in RFC 2617.","Provides the scope attribute, as defined in RFC 6749 §3.3.","","","","","","","","","","","","Middleware for checking HTTP authentication.","Construct HttpAuthentication middleware for the HTTP “…","Construct HttpAuthentication middleware for the HTTP “…","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","Construct HttpAuthentication middleware with the provided …"],"i":[0,0,0,0,0,51,0,0,2,2,2,2,2,2,2,2,2,51,2,2,2,2,2,2,2,2,2,2,2,0,0,13,13,15,13,15,13,15,13,15,13,13,15,13,15,15,13,15,13,15,13,13,15,13,15,13,15,13,15,15,13,15,0,0,0,12,12,12,20,20,21,12,20,21,12,20,21,12,20,21,12,12,20,12,12,20,21,12,12,20,21,12,21,12,12,20,21,12,20,12,20,20,12,20,21,12,12,21,20,21,12,20,21,12,20,21,12,20,21,12,0,0,0,35,0,0,35,35,35,0,0,35,35,28,28,35,28,30,31,35,28,30,31,28,30,31,28,30,31,28,30,31,28,28,30,31,28,30,31,35,35,28,28,30,30,31,31,35,35,35,35,28,28,28,30,31,28,28,35,28,30,31,28,28,28,30,31,30,31,27,28,30,31,28,30,31,30,35,28,30,31,35,28,30,31,31,35,28,30,31,35,28,30,31,28,28,30,31,35,28,30,31,30,35,28,30,31,52,53,54,55,46,0,0,0,0,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,1,46,46,46,46,46,46,46,0,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,0,0,12,12,12,49,11,49,11,11,11,11,11,49,11,11,11,49,49,49,49,49,11,11,49,11,11,11,49,11,11,11,49,49,11,11,49,11,49,11,11,49,11,49,11,0,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50],"f":[0,0,0,0,0,0,0,0,[[]],[[]],[[[2,[1]]]],[[[2,[1]]],3],[[[2,[1]],4],5],[[[2,[[0,[6,1]]]],4],5],[[],2],[[]],[[]],[[]],[1,[[2,[1]]]],[[[2,[1]]],7],[[[2,[1]]],7],[[],8],[[],9],[[],9],[[],10],[[]],[[[2,[11]],12],[[2,[11]]]],[[[2,[11]]],[[2,[11]]]],[[[2,[11]]],[[2,[11]]]],0,0,[13,14],[[]],[[]],[[]],[[]],[13,13],[15,15],[[]],[[]],[[],13],[[13,4],5],[[15,4],5],[[]],[[]],[[16,17]],[[]],[[]],[13],[15,[[19,[18]]]],[13,13],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],10],[[],10],[15,18],[[]],[[]],0,0,0,0,0,0,[20,11],[[]],[[]],[[]],[[]],[[]],[[]],[20,20],[21,21],[12,12],[[]],[[]],[[]],[[12,12],22],[[],20],[[12,12],23],[[],23],[[20,4],5],[[21,4],5],[[12,4],5],[[12,4],5],[[]],[[]],[[]],[[16,17]],[[],24],[12],[[]],[[]],[[]],[20],[[12,12],[[19,[22]]]],[[20,[26,[[25,[18]]]]],20],[[20,[26,[[25,[18]]]]],20],[12,7],[[]],[[]],[[]],[[],8],[21,18],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],10],[[],10],[[],10],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[[28,[27]]]],[[[28,[27]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[28,[[0,[29,27]]]]],[[28,[[0,[29,27]]]]]],[30,30],[31,31],[[]],[[]],[[]],[[[28,[[0,[32,27]]]],28],22],[[30,30],22],[[31,31],22],[[],[[28,[[0,[33,27]]]]]],[[[28,[[0,[34,27]]]],28],23],[[30,30],23],[[31,31],23],[[],23],[[],23],[[],23],[[35,4],5],[[35,4],5],[[[28,[[0,[6,27]]]],4],5],[[[28,[27]],4],5],[[30,4],5],[[30,4],5],[[31,4],5],[[31,4],5],[36,35],[[]],[37,35],[38,35],[27,[[28,[27]]]],[39],[[]],[[]],[[]],[[],24],[[[28,[[0,[40,27]]]]]],[[]],[[]],[[]],[[]],[[[28,[27]]],27],[[],41],[[[28,[[0,[34,27]]]],28],23],[[30,30],23],[[31,31],23],[19,30],[[],31],[42,[[9,[35]]]],[[],[[9,[[28,[27]],43]]]],[42,[[9,[30,35]]]],[42,[[9,[31,35]]]],[[[28,[[0,[44,27]]]],28],[[19,[22]]]],[[30,30],[[19,[22]]]],[[31,31],[[19,[22]]]],[30,[[19,[18]]]],[35,[[19,[45]]]],[[]],[[]],[[]],[[],8],[[],8],[[],8],[[],8],[31,18],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[[28,[27]]],[[9,[42]]]],[30,[[9,[42]]]],[31,[[9,[42]]]],[[],10],[[],10],[[],10],[[],10],[30,18],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,[[]],[[]],[[[46,[[0,[29,1]]]]],[[46,[[0,[29,1]]]]]],[[]],[[[46,[[0,[32,1]]]],46],22],[[],[[46,[[0,[33,1]]]]]],[[[46,[[0,[34,1]]]],46],23],[[],23],[[[46,[[0,[6,1]]]],4],5],[[]],[[],24],[[[46,[[0,[40,1]]]]]],[[]],[[],41],[[[46,[[0,[34,1]]]],46],23],[[],[[9,[[46,[1]],43]]]],[[[46,[[0,[44,1]]]],46],[[19,[22]]]],[[],47],[[]],[[],9],[[],9],[[],9],[[[46,[1]]],[[9,[42]]]],[[],10],[[]],0,[[]],[[]],[14,14],[[]],[[14,14],22],[[],14],[[14,14],23],[[],23],[[14,4],5],[[14,4],[[9,[48]]]],[[]],[[],24],[14],[[]],[[14,14],23],[[],14],[[14,14],[[19,[22]]]],[[]],[[],8],[[],9],[[],9],[14,[[9,[42]]]],[[],10],[[]],[[],14],0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[],49],[11,11],[[]],[[11,11],22],[[],49],[[],11],[[11,11],23],[[],23],[[49,12],49],[49,49],[49,49],[49,11],[[49,4],5],[[11,4],5],[[11,4],[[9,[48]]]],[[]],[[]],[[],24],[11],[[]],[[]],[[11,11],23],[[11,11],[[19,[22]]]],[49,49],[49,49],[[]],[[],8],[[],9],[[],9],[[],9],[[],9],[11,[[9,[42]]]],[[],10],[[],10],[[]],[[]],0,[[],[[50,[15]]]],[[],[[50,[21]]]],[[]],[[]],[[[50,[29,29]]],[[50,[29,29]]]],[[]],[[[50,[6,6]],4],5],[[]],[[]],[50],[[]],[[],9],[[],9],[[],10],[[]],[[],50]],"p":[[8,"Challenge"],[3,"AuthenticationError"],[3,"HttpResponse"],[3,"Formatter"],[6,"Result"],[8,"Debug"],[3,"StatusCode"],[3,"String"],[4,"Result"],[3,"TypeId"],[3,"Bearer"],[4,"Error"],[3,"Config"],[3,"Basic"],[3,"BasicAuth"],[3,"HttpRequest"],[4,"Payload"],[15,"str"],[4,"Option"],[3,"Config"],[3,"BearerAuth"],[4,"Ordering"],[15,"bool"],[15,"u64"],[4,"Cow"],[8,"Into"],[8,"Scheme"],[3,"Authorization"],[8,"Clone"],[3,"Basic"],[3,"Bearer"],[8,"Ord"],[8,"Default"],[8,"PartialEq"],[4,"ParseError"],[3,"ToStrError"],[4,"DecodeError"],[3,"Utf8Error"],[15,"never"],[8,"Hash"],[3,"HeaderName"],[3,"HeaderValue"],[4,"ParseError"],[8,"PartialOrd"],[8,"Error"],[3,"WwwAuthenticate"],[3,"Bytes"],[3,"Error"],[3,"BearerBuilder"],[3,"HttpAuthentication"],[8,"AuthExtractorConfig"],[13,"MissingField"],[13,"ToStrError"],[13,"Base64DecodeError"],[13,"Utf8Error"]]}\ }'); if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)}; diff --git a/source-files.js b/source-files.js index 46b9a27b4..aa0e66129 100644 --- a/source-files.js +++ b/source-files.js @@ -5,5 +5,6 @@ sourcesIndex["actix_limitation"] = {"name":"","files":["builder.rs","errors.rs", sourcesIndex["actix_protobuf"] = {"name":"","files":["lib.rs"]}; sourcesIndex["actix_redis"] = {"name":"","files":["lib.rs","redis.rs"]}; sourcesIndex["actix_session"] = {"name":"","dirs":[{"name":"storage","files":["cookie.rs","interface.rs","mod.rs","redis_actor.rs","redis_rs.rs","session_key.rs","utils.rs"]}],"files":["config.rs","lib.rs","middleware.rs","session.rs","session_ext.rs"]}; +sourcesIndex["actix_settings"] = {"name":"","files":["actix.rs","core.rs","error.rs","lib.rs"]}; sourcesIndex["actix_web_httpauth"] = {"name":"","dirs":[{"name":"extractors","files":["basic.rs","bearer.rs","config.rs","errors.rs","mod.rs"]},{"name":"headers","dirs":[{"name":"authorization","dirs":[{"name":"scheme","files":["basic.rs","bearer.rs","mod.rs"]}],"files":["errors.rs","header.rs","mod.rs"]},{"name":"www_authenticate","dirs":[{"name":"challenge","dirs":[{"name":"bearer","files":["builder.rs","challenge.rs","errors.rs","mod.rs"]}],"files":["basic.rs","mod.rs"]}],"files":["header.rs","mod.rs"]}],"files":["mod.rs"]}],"files":["lib.rs","middleware.rs","utils.rs"]}; createSourceSidebar(); diff --git a/src/actix_settings/actix.rs.html b/src/actix_settings/actix.rs.html new file mode 100644 index 000000000..1b3ced048 --- /dev/null +++ b/src/actix_settings/actix.rs.html @@ -0,0 +1,1026 @@ +actix.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
+
use std::{fmt, path::PathBuf};
+
+use once_cell::sync::Lazy;
+use regex::Regex;
+use serde::{de, Deserialize};
+
+use crate::{core::Parse, error::AtError};
+
+/// Settings types for Actix Web.
+#[derive(Debug, Clone, Deserialize, PartialEq, Eq, Hash)]
+#[serde(rename_all = "kebab-case")]
+pub struct ActixSettings {
+    pub hosts: Vec<Address>,
+    pub mode: Mode,
+    pub enable_compression: bool,
+    pub enable_log: bool,
+    pub num_workers: NumWorkers,
+    pub backlog: Backlog,
+    pub max_connections: MaxConnections,
+    pub max_connection_rate: MaxConnectionRate,
+    pub keep_alive: KeepAlive,
+    pub client_timeout: Timeout,
+    pub client_shutdown: Timeout,
+    pub shutdown_timeout: Timeout,
+    pub tls: Tls,
+}
+
+#[derive(Debug, Clone, Deserialize, PartialEq, Eq, Hash)]
+pub struct Address {
+    pub host: String,
+    pub port: u16,
+}
+
+pub(crate) static ADDR_REGEX: Lazy<Regex> = Lazy::new(|| {
+    Regex::new(
+        r#"(?x)
+        \[                     # opening square bracket
+        (\s)*                  # optional whitespace
+            "(?P<host>[^"]+)"  # host name (string)
+            ,                  # separating comma
+            (\s)*              # optional whitespace
+            (?P<port>\d+)      # port number (integer)
+        (\s)*                  # optional whitespace
+        \]                     # closing square bracket
+    "#,
+    )
+    .expect("Failed to compile regex: ADDR_REGEX")
+});
+
+pub(crate) static ADDR_LIST_REGEX: Lazy<Regex> = Lazy::new(|| {
+    Regex::new(
+        r#"(?x)
+        \[                           # opening square bracket (list)
+        (\s)*                        # optional whitespace
+            (?P<elements>(
+                \[".*", (\s)* \d+\]  # element
+                (,)?                 # element separator
+                (\s)*                # optional whitespace
+            )*)
+        (\s)*                        # optional whitespace
+        \]                           # closing square bracket (list)
+    "#,
+    )
+    .expect("Failed to compile regex: ADDRS_REGEX")
+});
+
+impl Parse for Address {
+    fn parse(string: &str) -> Result<Self, AtError> {
+        let mut items = string
+            .trim()
+            .trim_start_matches('[')
+            .trim_end_matches(']')
+            .split(',');
+
+        let parse_error = || AtError::ParseAddressError(string.to_string());
+
+        if !ADDR_REGEX.is_match(string) {
+            return Err(parse_error());
+        }
+
+        Ok(Self {
+            host: items.next().ok_or_else(parse_error)?.trim().to_string(),
+            port: items.next().ok_or_else(parse_error)?.trim().parse()?,
+        })
+    }
+}
+
+impl Parse for Vec<Address> {
+    fn parse(string: &str) -> Result<Self, AtError> {
+        let parse_error = || AtError::ParseAddressError(string.to_string());
+
+        if !ADDR_LIST_REGEX.is_match(string) {
+            return Err(parse_error());
+        }
+
+        let mut addrs = vec![];
+
+        for list_caps in ADDR_LIST_REGEX.captures_iter(string) {
+            let elements = &list_caps["elements"].trim();
+            for elt_caps in ADDR_REGEX.captures_iter(elements) {
+                addrs.push(Address {
+                    host: elt_caps["host"].to_string(),
+                    port: elt_caps["port"].parse()?,
+                });
+            }
+        }
+
+        Ok(addrs)
+    }
+}
+
+#[derive(Debug, Clone, Deserialize, PartialEq, Eq, Hash)]
+pub enum Mode {
+    #[serde(rename = "development")]
+    Development,
+
+    #[serde(rename = "production")]
+    Production,
+}
+
+impl Parse for Mode {
+    fn parse(string: &str) -> std::result::Result<Self, AtError> {
+        match string {
+            "development" => Ok(Self::Development),
+            "production" => Ok(Self::Production),
+            _ => Err(InvalidValue! {
+                expected: "\"development\" | \"production\".",
+                got: string,
+            }),
+        }
+    }
+}
+
+#[derive(Debug, Clone, PartialEq, Eq, Hash)]
+pub enum NumWorkers {
+    Default,
+    Manual(usize),
+}
+
+impl Parse for NumWorkers {
+    fn parse(string: &str) -> std::result::Result<Self, AtError> {
+        match string {
+            "default" => Ok(NumWorkers::Default),
+            string => match string.parse::<usize>() {
+                Ok(val) => Ok(NumWorkers::Manual(val)),
+                Err(_) => Err(InvalidValue! {
+                    expected: "a positive integer",
+                    got: string,
+                }),
+            },
+        }
+    }
+}
+
+impl<'de> serde::Deserialize<'de> for NumWorkers {
+    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
+    where
+        D: serde::Deserializer<'de>,
+    {
+        struct NumWorkersVisitor;
+
+        impl<'de> de::Visitor<'de> for NumWorkersVisitor {
+            type Value = NumWorkers;
+
+            fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
+                let msg = "Either \"default\" or a string containing an integer > 0";
+                formatter.write_str(msg)
+            }
+
+            fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
+            where
+                E: de::Error,
+            {
+                match NumWorkers::parse(value) {
+                    Ok(num_workers) => Ok(num_workers),
+                    Err(AtError::InvalidValue { expected, got, .. }) => Err(
+                        de::Error::invalid_value(de::Unexpected::Str(&got), &expected),
+                    ),
+                    Err(_) => unreachable!(),
+                }
+            }
+        }
+
+        deserializer.deserialize_string(NumWorkersVisitor)
+    }
+}
+
+#[derive(Debug, Clone, PartialEq, Eq, Hash)]
+pub enum Backlog {
+    Default,
+    Manual(usize),
+}
+
+impl Parse for Backlog {
+    fn parse(string: &str) -> std::result::Result<Self, AtError> {
+        match string {
+            "default" => Ok(Backlog::Default),
+            string => match string.parse::<usize>() {
+                Ok(val) => Ok(Backlog::Manual(val)),
+                Err(_) => Err(InvalidValue! {
+                    expected: "an integer > 0",
+                    got: string,
+                }),
+            },
+        }
+    }
+}
+
+impl<'de> serde::Deserialize<'de> for Backlog {
+    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
+    where
+        D: serde::Deserializer<'de>,
+    {
+        struct BacklogVisitor;
+
+        impl<'de> de::Visitor<'de> for BacklogVisitor {
+            type Value = Backlog;
+
+            fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
+                let msg = "Either \"default\" or a string containing an integer > 0";
+                formatter.write_str(msg)
+            }
+
+            fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
+            where
+                E: de::Error,
+            {
+                match Backlog::parse(value) {
+                    Ok(backlog) => Ok(backlog),
+                    Err(AtError::InvalidValue { expected, got, .. }) => Err(
+                        de::Error::invalid_value(de::Unexpected::Str(&got), &expected),
+                    ),
+                    Err(_) => unreachable!(),
+                }
+            }
+        }
+
+        deserializer.deserialize_string(BacklogVisitor)
+    }
+}
+
+#[derive(Debug, Clone, PartialEq, Eq, Hash)]
+pub enum MaxConnections {
+    Default,
+    Manual(usize),
+}
+
+impl Parse for MaxConnections {
+    fn parse(string: &str) -> std::result::Result<Self, AtError> {
+        match string {
+            "default" => Ok(MaxConnections::Default),
+            string => match string.parse::<usize>() {
+                Ok(val) => Ok(MaxConnections::Manual(val)),
+                Err(_) => Err(InvalidValue! {
+                    expected: "an integer > 0",
+                    got: string,
+                }),
+            },
+        }
+    }
+}
+
+impl<'de> serde::Deserialize<'de> for MaxConnections {
+    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
+    where
+        D: serde::Deserializer<'de>,
+    {
+        struct MaxConnectionsVisitor;
+
+        impl<'de> de::Visitor<'de> for MaxConnectionsVisitor {
+            type Value = MaxConnections;
+
+            fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
+                let msg = "Either \"default\" or a string containing an integer > 0";
+                formatter.write_str(msg)
+            }
+
+            fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
+            where
+                E: de::Error,
+            {
+                match MaxConnections::parse(value) {
+                    Ok(max_connections) => Ok(max_connections),
+                    Err(AtError::InvalidValue { expected, got, .. }) => Err(
+                        de::Error::invalid_value(de::Unexpected::Str(&got), &expected),
+                    ),
+                    Err(_) => unreachable!(),
+                }
+            }
+        }
+
+        deserializer.deserialize_string(MaxConnectionsVisitor)
+    }
+}
+
+#[derive(Debug, Clone, PartialEq, Eq, Hash)]
+pub enum MaxConnectionRate {
+    Default,
+    Manual(usize),
+}
+
+impl Parse for MaxConnectionRate {
+    fn parse(string: &str) -> std::result::Result<Self, AtError> {
+        match string {
+            "default" => Ok(MaxConnectionRate::Default),
+            string => match string.parse::<usize>() {
+                Ok(val) => Ok(MaxConnectionRate::Manual(val)),
+                Err(_) => Err(InvalidValue! {
+                    expected: "an integer > 0",
+                    got: string,
+                }),
+            },
+        }
+    }
+}
+
+impl<'de> serde::Deserialize<'de> for MaxConnectionRate {
+    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
+    where
+        D: serde::Deserializer<'de>,
+    {
+        struct MaxConnectionRateVisitor;
+
+        impl<'de> de::Visitor<'de> for MaxConnectionRateVisitor {
+            type Value = MaxConnectionRate;
+
+            fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
+                let msg = "Either \"default\" or a string containing an integer > 0";
+                formatter.write_str(msg)
+            }
+
+            fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
+            where
+                E: de::Error,
+            {
+                match MaxConnectionRate::parse(value) {
+                    Ok(max_connection_rate) => Ok(max_connection_rate),
+                    Err(AtError::InvalidValue { expected, got, .. }) => Err(
+                        de::Error::invalid_value(de::Unexpected::Str(&got), &expected),
+                    ),
+                    Err(_) => unreachable!(),
+                }
+            }
+        }
+
+        deserializer.deserialize_string(MaxConnectionRateVisitor)
+    }
+}
+
+#[derive(Debug, Clone, PartialEq, Eq, Hash)]
+pub enum KeepAlive {
+    Default,
+    Disabled,
+    Os,
+    Seconds(usize),
+}
+
+impl Parse for KeepAlive {
+    fn parse(string: &str) -> std::result::Result<Self, AtError> {
+        pub(crate) static FMT: Lazy<Regex> =
+            Lazy::new(|| Regex::new(r"^\d+ seconds$").expect("Failed to compile regex: FMT"));
+
+        pub(crate) static DIGITS: Lazy<Regex> =
+            Lazy::new(|| Regex::new(r"^\d+").expect("Failed to compile regex: FMT"));
+
+        macro_rules! invalid_value {
+            ($got:expr) => {
+                Err(InvalidValue! {
+                    expected: "a string of the format \"N seconds\" where N is an integer > 0",
+                    got: $got,
+                })
+            };
+        }
+
+        let digits_in = |m: regex::Match| &string[m.start()..m.end()];
+        match string {
+            "default" => Ok(KeepAlive::Default),
+            "disabled" => Ok(KeepAlive::Disabled),
+            "OS" | "os" => Ok(KeepAlive::Os),
+            string if !FMT.is_match(string) => invalid_value!(string),
+            string => match DIGITS.find(string) {
+                None => invalid_value!(string),
+                Some(mat) => match digits_in(mat).parse() {
+                    Ok(val) => Ok(KeepAlive::Seconds(val)),
+                    Err(_) => invalid_value!(string),
+                },
+            },
+        }
+    }
+}
+
+impl<'de> serde::Deserialize<'de> for KeepAlive {
+    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
+    where
+        D: serde::Deserializer<'de>,
+    {
+        struct KeepAliveVisitor;
+
+        impl<'de> de::Visitor<'de> for KeepAliveVisitor {
+            type Value = KeepAlive;
+
+            fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
+                let msg = "Either \"default\", \"disabled\", \"os\", or a string of the format \"N seconds\" where N is an integer > 0";
+                formatter.write_str(msg)
+            }
+
+            fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
+            where
+                E: de::Error,
+            {
+                match KeepAlive::parse(value) {
+                    Ok(keep_alive) => Ok(keep_alive),
+                    Err(AtError::InvalidValue { expected, got, .. }) => Err(
+                        de::Error::invalid_value(de::Unexpected::Str(&got), &expected),
+                    ),
+                    Err(_) => unreachable!(),
+                }
+            }
+        }
+
+        deserializer.deserialize_string(KeepAliveVisitor)
+    }
+}
+
+#[derive(Debug, Clone, PartialEq, Eq, Hash)]
+pub enum Timeout {
+    Default,
+    Milliseconds(usize),
+    Seconds(usize),
+}
+
+impl Parse for Timeout {
+    fn parse(string: &str) -> std::result::Result<Self, AtError> {
+        pub static FMT: Lazy<Regex> = Lazy::new(|| {
+            Regex::new(r"^\d+ (milliseconds|seconds)$").expect("Failed to compile regex: FMT")
+        });
+
+        pub static DIGITS: Lazy<Regex> =
+            Lazy::new(|| Regex::new(r"^\d+").expect("Failed to compile regex: DIGITS"));
+
+        pub static UNIT: Lazy<Regex> = Lazy::new(|| {
+            Regex::new(r"(milliseconds|seconds)$").expect("Failed to compile regex: UNIT")
+        });
+
+        macro_rules! invalid_value {
+            ($got:expr) => {
+                Err(InvalidValue! {
+                    expected: "a string of the format \"N seconds\" or \"N milliseconds\" where N is an integer > 0",
+                    got: $got,
+                })
+            }
+        }
+        match string {
+            "default" => Ok(Timeout::Default),
+            string if !FMT.is_match(string) => invalid_value!(string),
+            string => match (DIGITS.find(string), UNIT.find(string)) {
+                (None, _) => invalid_value!(string),
+                (_, None) => invalid_value!(string),
+                (Some(dmatch), Some(umatch)) => {
+                    let digits = &string[dmatch.start()..dmatch.end()];
+                    let unit = &string[umatch.start()..umatch.end()];
+                    match (digits.parse(), unit) {
+                        (Ok(v), "milliseconds") => Ok(Timeout::Milliseconds(v)),
+                        (Ok(v), "seconds") => Ok(Timeout::Seconds(v)),
+                        _ => invalid_value!(string),
+                    }
+                }
+            },
+        }
+    }
+}
+
+impl<'de> serde::Deserialize<'de> for Timeout {
+    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
+    where
+        D: serde::Deserializer<'de>,
+    {
+        struct TimeoutVisitor;
+
+        impl<'de> de::Visitor<'de> for TimeoutVisitor {
+            type Value = Timeout;
+
+            fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
+                let msg = "Either \"default\", \"disabled\", \"os\", or a string of the format \"N seconds\" where N is an integer > 0";
+                formatter.write_str(msg)
+            }
+
+            fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
+            where
+                E: de::Error,
+            {
+                match Timeout::parse(value) {
+                    Ok(num_workers) => Ok(num_workers),
+                    Err(AtError::InvalidValue { expected, got, .. }) => Err(
+                        de::Error::invalid_value(de::Unexpected::Str(&got), &expected),
+                    ),
+                    Err(_) => unreachable!(),
+                }
+            }
+        }
+
+        deserializer.deserialize_string(TimeoutVisitor)
+    }
+}
+
+#[derive(Debug, Clone, Deserialize, PartialEq, Eq, Hash)]
+#[serde(rename_all = "kebab-case")]
+pub struct Tls {
+    pub enabled: bool,
+    pub certificate: PathBuf,
+    pub private_key: PathBuf,
+}
+
+
\ No newline at end of file diff --git a/src/actix_settings/core.rs.html b/src/actix_settings/core.rs.html new file mode 100644 index 000000000..a31bcf95c --- /dev/null +++ b/src/actix_settings/core.rs.html @@ -0,0 +1,78 @@ +core.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
+
use std::{path::PathBuf, str::FromStr};
+
+use crate::error::AtError;
+
+pub trait Parse: Sized {
+    fn parse(string: &str) -> Result<Self, AtError>;
+}
+
+impl Parse for bool {
+    fn parse(string: &str) -> Result<Self, AtError> {
+        Self::from_str(string).map_err(AtError::from)
+    }
+}
+
+macro_rules! impl_parse_for_int_type {
+    ($($int_type:ty),+ $(,)?) => {
+        $(
+            impl Parse for $int_type {
+                fn parse(string: &str) -> Result<Self, AtError> {
+                    Self::from_str(string).map_err(AtError::from)
+                }
+            }
+        )+
+    }
+}
+impl_parse_for_int_type![i8, i16, i32, i64, i128, u8, u16, u32, u64, u128];
+
+impl Parse for String {
+    fn parse(string: &str) -> Result<Self, AtError> {
+        Ok(string.to_string())
+    }
+}
+
+impl Parse for PathBuf {
+    fn parse(string: &str) -> Result<Self, AtError> {
+        Ok(PathBuf::from(string))
+    }
+}
+
+
\ No newline at end of file diff --git a/src/actix_settings/error.rs.html b/src/actix_settings/error.rs.html new file mode 100644 index 000000000..6a9718aa3 --- /dev/null +++ b/src/actix_settings/error.rs.html @@ -0,0 +1,248 @@ +error.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
+
use std::{env::VarError, io, num::ParseIntError, path::PathBuf, str::ParseBoolError};
+
+use toml::de::Error as TomlError;
+
+pub type AtResult<T> = std::result::Result<T, AtError>;
+
+#[derive(Clone, Debug)]
+pub enum AtError {
+    EnvVarError(VarError),
+    FileExists(PathBuf),
+    InvalidValue {
+        expected: &'static str,
+        got: String,
+        file: &'static str,
+        line: u32,
+        column: u32,
+    },
+    IoError(ioe::IoError),
+    ParseBoolError(ParseBoolError),
+    ParseIntError(ParseIntError),
+    ParseAddressError(String),
+    TomlError(TomlError),
+}
+
+macro_rules! InvalidValue {
+    (expected: $expected:expr, got: $got:expr,) => {
+        crate::AtError::InvalidValue {
+            expected: $expected,
+            got: $got.to_string(),
+            file: file!(),
+            line: line!(),
+            column: column!(),
+        }
+    };
+}
+
+impl From<io::Error> for AtError {
+    fn from(err: io::Error) -> Self {
+        Self::IoError(ioe::IoError::from(err))
+    }
+}
+
+impl From<ioe::IoError> for AtError {
+    fn from(err: ioe::IoError) -> Self {
+        Self::IoError(err)
+    }
+}
+
+impl From<ParseBoolError> for AtError {
+    fn from(err: ParseBoolError) -> Self {
+        Self::ParseBoolError(err)
+    }
+}
+
+impl From<ParseIntError> for AtError {
+    fn from(err: ParseIntError) -> Self {
+        Self::ParseIntError(err)
+    }
+}
+
+impl From<TomlError> for AtError {
+    fn from(err: TomlError) -> Self {
+        Self::TomlError(err)
+    }
+}
+
+impl From<VarError> for AtError {
+    fn from(err: VarError) -> Self {
+        Self::EnvVarError(err)
+    }
+}
+
+impl From<AtError> for io::Error {
+    fn from(err: AtError) -> Self {
+        match err {
+            AtError::EnvVarError(var_error) => {
+                let msg = format!("Env var error: {}", var_error);
+                io::Error::new(io::ErrorKind::InvalidInput, msg)
+            }
+
+            AtError::FileExists(path_buf) => {
+                let msg = format!("File exists: {}", path_buf.display());
+                io::Error::new(io::ErrorKind::AlreadyExists, msg)
+            }
+
+            AtError::InvalidValue {
+                expected,
+                ref got,
+                file,
+                line,
+                column,
+            } => {
+                let msg = format!(
+                    "Expected {}, got {}  (@ {}:{}:{})",
+                    expected, got, file, line, column
+                );
+                io::Error::new(io::ErrorKind::InvalidInput, msg)
+            }
+
+            AtError::IoError(io_error) => io_error.into(),
+
+            AtError::ParseBoolError(parse_bool_error) => {
+                let msg = format!("Failed to parse boolean: {}", parse_bool_error);
+                io::Error::new(io::ErrorKind::InvalidInput, msg)
+            }
+
+            AtError::ParseIntError(parse_int_error) => {
+                let msg = format!("Failed to parse integer: {}", parse_int_error);
+                io::Error::new(io::ErrorKind::InvalidInput, msg)
+            }
+
+            AtError::ParseAddressError(string) => {
+                let msg = format!("Failed to parse address: {}", string);
+                io::Error::new(io::ErrorKind::InvalidInput, msg)
+            }
+
+            AtError::TomlError(toml_error) => {
+                let msg = format!("TOML error: {}", toml_error);
+                io::Error::new(io::ErrorKind::InvalidInput, msg)
+            }
+        }
+    }
+}
+
+
\ No newline at end of file diff --git a/src/actix_settings/lib.rs.html b/src/actix_settings/lib.rs.html new file mode 100644 index 000000000..026207e89 --- /dev/null +++ b/src/actix_settings/lib.rs.html @@ -0,0 +1,1412 @@ +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
+
/// A library to process Server.toml files
+use std::{
+    env, fmt,
+    fs::File,
+    io::{Read as _, Write as _},
+    path::Path,
+    time::Duration,
+};
+
+use actix_http::{Request, Response};
+use actix_service::IntoServiceFactory;
+use actix_web::{
+    body::MessageBody,
+    dev::{AppConfig, ServiceFactory},
+    http::KeepAlive as ActixKeepAlive,
+    Error as WebError, HttpServer,
+};
+use serde::{de, Deserialize};
+
+#[macro_use]
+mod error;
+mod actix;
+mod core;
+
+pub use self::actix::*;
+pub use self::core::Parse;
+pub use self::error::{AtError, AtResult};
+
+#[derive(Debug, Clone, Deserialize, PartialEq, Eq, Hash)]
+#[serde(bound = "A: Deserialize<'de>")]
+pub struct BasicSettings<A> {
+    pub actix: ActixSettings,
+    pub application: A,
+}
+
+pub type Settings = BasicSettings<NoSettings>;
+
+#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize)]
+#[non_exhaustive]
+pub struct NoSettings {/* NOTE: turning this into a unit struct will cause deserialization failures. */}
+
+impl<A> BasicSettings<A>
+where
+    A: de::DeserializeOwned,
+{
+    /// NOTE **DO NOT** mess with the ordering of the tables in this template.
+    ///      Especially the `[application]` table needs to be last in order
+    ///      for some tests to keep working.
+    pub(crate) const DEFAULT_TOML_TEMPLATE: &'static str = include_str!("./defaults.toml");
+
+    /// Parse an instance of `Self` from a `TOML` file located at `filepath`.
+    /// If the file doesn't exist, it is generated from the default `TOML`
+    /// template, after which the newly generated file is read in and parsed.
+    pub fn parse_toml<P>(filepath: P) -> AtResult<Self>
+    where
+        P: AsRef<Path>,
+    {
+        let filepath = filepath.as_ref();
+
+        if !filepath.exists() {
+            Self::write_toml_file(filepath)?;
+        }
+
+        let mut f = File::open(filepath)?;
+        let mut contents = String::with_capacity(f.metadata()?.len() as usize);
+        f.read_to_string(&mut contents)?;
+
+        Ok(toml::from_str::<Self>(&contents)?)
+    }
+
+    /// Parse an instance of `Self` straight from the default `TOML` template.
+    pub fn from_default_template() -> AtResult<Self> {
+        Self::from_template(Self::DEFAULT_TOML_TEMPLATE)
+    }
+
+    /// Parse an instance of `Self` straight from the default `TOML` template.
+    pub fn from_template(template: &str) -> AtResult<Self> {
+        Ok(toml::from_str(template)?)
+    }
+
+    /// Write the default `TOML` template to a new file, to be located
+    /// at `filepath`.  Return a `Error::FileExists(_)` error if a
+    /// file already exists at that location.
+    pub fn write_toml_file<P>(filepath: P) -> AtResult<()>
+    where
+        P: AsRef<Path>,
+    {
+        let filepath = filepath.as_ref();
+        let contents = Self::DEFAULT_TOML_TEMPLATE.trim();
+
+        if filepath.exists() {
+            return Err(AtError::FileExists(filepath.to_path_buf()));
+        }
+
+        let mut file = File::create(filepath)?;
+        file.write_all(contents.as_bytes())?;
+        file.flush()?;
+
+        Ok(())
+    }
+
+    pub fn override_field<F, V>(field: &mut F, value: V) -> AtResult<()>
+    where
+        F: Parse,
+        V: AsRef<str>,
+    {
+        *field = F::parse(value.as_ref())?;
+        Ok(())
+    }
+
+    pub fn override_field_with_env_var<F, N>(field: &mut F, var_name: N) -> AtResult<()>
+    where
+        F: Parse,
+        N: AsRef<str>,
+    {
+        match env::var(var_name.as_ref()) {
+            Err(env::VarError::NotPresent) => Ok((/*NOP*/)),
+            Err(var_error) => Err(AtError::from(var_error)),
+            Ok(value) => Self::override_field(field, value),
+        }
+    }
+}
+
+pub trait ApplySettings {
+    /// Apply a [`BasicSettings`] value to `self`.
+    ///
+    /// [`BasicSettings`]: ./struct.BasicSettings.html
+    #[must_use]
+    fn apply_settings<A>(self, settings: &BasicSettings<A>) -> Self
+    where
+        A: de::DeserializeOwned;
+}
+
+impl<F, I, S, B> ApplySettings for HttpServer<F, I, S, B>
+where
+    F: Fn() -> I + Send + Clone + 'static,
+    I: IntoServiceFactory<S, Request>,
+    S: ServiceFactory<Request, Config = AppConfig> + 'static,
+    S::Error: Into<WebError> + 'static,
+    S::InitError: fmt::Debug,
+    S::Response: Into<Response<B>> + 'static,
+    S::Future: 'static,
+    B: MessageBody + 'static,
+{
+    fn apply_settings<A>(mut self, settings: &BasicSettings<A>) -> Self
+    where
+        A: de::DeserializeOwned,
+    {
+        if settings.actix.tls.enabled {
+            // for Address { host, port } in &settings.actix.hosts {
+            //     self = self.bind(format!("{}:{}", host, port))
+            //         .unwrap(/*TODO*/);
+            // }
+            todo!("[ApplySettings] TLS support has not been implemented yet.");
+        } else {
+            for Address { host, port } in &settings.actix.hosts {
+                self = self.bind(format!("{}:{}", host, port))
+                    .unwrap(/*TODO*/);
+            }
+        }
+
+        self = match settings.actix.num_workers {
+            NumWorkers::Default => self,
+            NumWorkers::Manual(n) => self.workers(n),
+        };
+
+        self = match settings.actix.backlog {
+            Backlog::Default => self,
+            Backlog::Manual(n) => self.backlog(n as u32),
+        };
+
+        self = match settings.actix.max_connections {
+            MaxConnections::Default => self,
+            MaxConnections::Manual(n) => self.max_connections(n),
+        };
+
+        self = match settings.actix.max_connection_rate {
+            MaxConnectionRate::Default => self,
+            MaxConnectionRate::Manual(n) => self.max_connection_rate(n),
+        };
+
+        self = match settings.actix.keep_alive {
+            KeepAlive::Default => self,
+            KeepAlive::Disabled => self.keep_alive(ActixKeepAlive::Disabled),
+            KeepAlive::Os => self.keep_alive(ActixKeepAlive::Os),
+            KeepAlive::Seconds(n) => self.keep_alive(Duration::from_secs(n as u64)),
+        };
+
+        self = match settings.actix.client_timeout {
+            Timeout::Default => self,
+            Timeout::Milliseconds(n) => {
+                self.client_disconnect_timeout(Duration::from_millis(n as u64))
+            }
+            Timeout::Seconds(n) => self.client_disconnect_timeout(Duration::from_secs(n as u64)),
+        };
+
+        self = match settings.actix.client_shutdown {
+            Timeout::Default => self,
+            Timeout::Milliseconds(n) => {
+                self.client_disconnect_timeout(Duration::from_millis(n as u64))
+            }
+            Timeout::Seconds(n) => self.client_disconnect_timeout(Duration::from_secs(n as u64)),
+        };
+
+        self = match settings.actix.shutdown_timeout {
+            Timeout::Default => self,
+            Timeout::Milliseconds(_) => self.shutdown_timeout(1),
+            Timeout::Seconds(n) => self.shutdown_timeout(n as u64),
+        };
+
+        self
+    }
+}
+
+#[cfg(test)]
+mod tests {
+    #![allow(non_snake_case)]
+
+    use std::path::Path;
+
+    use actix_web::{App, HttpServer};
+    use serde::Deserialize;
+
+    use crate::actix::*; // used for value construction in assertions
+    use crate::{ApplySettings, AtResult, BasicSettings, Settings};
+
+    #[test]
+    fn apply_settings() -> AtResult<()> {
+        let settings = Settings::parse_toml("Server.toml")?;
+        let _ = HttpServer::new(App::new).apply_settings(&settings);
+        Ok(())
+    }
+
+    #[test]
+    fn override_field__hosts() {
+        let mut settings = Settings::from_default_template().unwrap();
+
+        assert_eq!(
+            settings.actix.hosts,
+            vec![Address {
+                host: "0.0.0.0".into(),
+                port: 9000
+            },]
+        );
+
+        Settings::override_field(
+            &mut settings.actix.hosts,
+            r#"[
+            ["0.0.0.0",   1234],
+            ["localhost", 2345]
+        ]"#,
+        )
+        .unwrap();
+
+        assert_eq!(
+            settings.actix.hosts,
+            vec![
+                Address {
+                    host: "0.0.0.0".into(),
+                    port: 1234
+                },
+                Address {
+                    host: "localhost".into(),
+                    port: 2345
+                },
+            ]
+        );
+    }
+
+    #[test]
+    fn override_field_with_env_var__hosts() {
+        let mut settings = Settings::from_default_template().unwrap();
+
+        assert_eq!(
+            settings.actix.hosts,
+            vec![Address {
+                host: "0.0.0.0".into(),
+                port: 9000
+            },]
+        );
+
+        std::env::set_var(
+            "OVERRIDE__HOSTS",
+            r#"[
+            ["0.0.0.0",   1234],
+            ["localhost", 2345]
+        ]"#,
+        );
+
+        Settings::override_field_with_env_var(&mut settings.actix.hosts, "OVERRIDE__HOSTS")
+            .unwrap();
+
+        assert_eq!(
+            settings.actix.hosts,
+            vec![
+                Address {
+                    host: "0.0.0.0".into(),
+                    port: 1234
+                },
+                Address {
+                    host: "localhost".into(),
+                    port: 2345
+                },
+            ]
+        );
+    }
+
+    #[test]
+    fn override_field__mode() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(settings.actix.mode, Mode::Development);
+        Settings::override_field(&mut settings.actix.mode, "production")?;
+        assert_eq!(settings.actix.mode, Mode::Production);
+        Ok(())
+    }
+
+    #[test]
+    fn override_field_with_env_var__mode() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(settings.actix.mode, Mode::Development);
+        std::env::set_var("OVERRIDE__MODE", "production");
+        Settings::override_field_with_env_var(&mut settings.actix.mode, "OVERRIDE__MODE")?;
+        assert_eq!(settings.actix.mode, Mode::Production);
+        Ok(())
+    }
+
+    #[test]
+    fn override_field__enable_compression() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert!(settings.actix.enable_compression);
+        Settings::override_field(&mut settings.actix.enable_compression, "false")?;
+        assert!(!settings.actix.enable_compression);
+        Ok(())
+    }
+
+    #[test]
+    fn override_field_with_env_var__enable_compression() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert!(settings.actix.enable_compression);
+        std::env::set_var("OVERRIDE__ENABLE_COMPRESSION", "false");
+        Settings::override_field_with_env_var(
+            &mut settings.actix.enable_compression,
+            "OVERRIDE__ENABLE_COMPRESSION",
+        )?;
+        assert!(!settings.actix.enable_compression);
+        Ok(())
+    }
+
+    #[test]
+    fn override_field__enable_log() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert!(settings.actix.enable_log);
+        Settings::override_field(&mut settings.actix.enable_log, "false")?;
+        assert!(!settings.actix.enable_log);
+        Ok(())
+    }
+
+    #[test]
+    fn override_field_with_env_var__enable_log() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert!(settings.actix.enable_log);
+        std::env::set_var("OVERRIDE__ENABLE_LOG", "false");
+        Settings::override_field_with_env_var(
+            &mut settings.actix.enable_log,
+            "OVERRIDE__ENABLE_LOG",
+        )?;
+        assert!(!settings.actix.enable_log);
+        Ok(())
+    }
+
+    #[test]
+    fn override_field__num_workers() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(settings.actix.num_workers, NumWorkers::Default);
+        Settings::override_field(&mut settings.actix.num_workers, "42")?;
+        assert_eq!(settings.actix.num_workers, NumWorkers::Manual(42));
+        Ok(())
+    }
+
+    #[test]
+    fn override_field_with_env_var__num_workers() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(settings.actix.num_workers, NumWorkers::Default);
+        std::env::set_var("OVERRIDE__NUM_WORKERS", "42");
+        Settings::override_field_with_env_var(
+            &mut settings.actix.num_workers,
+            "OVERRIDE__NUM_WORKERS",
+        )?;
+        assert_eq!(settings.actix.num_workers, NumWorkers::Manual(42));
+        Ok(())
+    }
+
+    #[test]
+    fn override_field__backlog() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(settings.actix.backlog, Backlog::Default);
+        Settings::override_field(&mut settings.actix.backlog, "42")?;
+        assert_eq!(settings.actix.backlog, Backlog::Manual(42));
+        Ok(())
+    }
+
+    #[test]
+    fn override_field_with_env_var__backlog() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(settings.actix.backlog, Backlog::Default);
+        std::env::set_var("OVERRIDE__BACKLOG", "42");
+        Settings::override_field_with_env_var(&mut settings.actix.backlog, "OVERRIDE__BACKLOG")?;
+        assert_eq!(settings.actix.backlog, Backlog::Manual(42));
+        Ok(())
+    }
+
+    #[test]
+    fn override_field__max_connections() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(settings.actix.max_connections, MaxConnections::Default);
+        Settings::override_field(&mut settings.actix.max_connections, "42")?;
+        assert_eq!(settings.actix.max_connections, MaxConnections::Manual(42));
+        Ok(())
+    }
+
+    #[test]
+    fn override_field_with_env_var__max_connections() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(settings.actix.max_connections, MaxConnections::Default);
+        std::env::set_var("OVERRIDE__MAX_CONNECTIONS", "42");
+        Settings::override_field_with_env_var(
+            &mut settings.actix.max_connections,
+            "OVERRIDE__MAX_CONNECTIONS",
+        )?;
+        assert_eq!(settings.actix.max_connections, MaxConnections::Manual(42));
+        Ok(())
+    }
+
+    #[test]
+    fn override_field__max_connection_rate() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(
+            settings.actix.max_connection_rate,
+            MaxConnectionRate::Default
+        );
+        Settings::override_field(&mut settings.actix.max_connection_rate, "42")?;
+        assert_eq!(
+            settings.actix.max_connection_rate,
+            MaxConnectionRate::Manual(42)
+        );
+        Ok(())
+    }
+
+    #[test]
+    fn override_field_with_env_var__max_connection_rate() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(
+            settings.actix.max_connection_rate,
+            MaxConnectionRate::Default
+        );
+        std::env::set_var("OVERRIDE__MAX_CONNECTION_RATE", "42");
+        Settings::override_field_with_env_var(
+            &mut settings.actix.max_connection_rate,
+            "OVERRIDE__MAX_CONNECTION_RATE",
+        )?;
+        assert_eq!(
+            settings.actix.max_connection_rate,
+            MaxConnectionRate::Manual(42)
+        );
+        Ok(())
+    }
+
+    #[test]
+    fn override_field__keep_alive() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(settings.actix.keep_alive, KeepAlive::Default);
+        Settings::override_field(&mut settings.actix.keep_alive, "42 seconds")?;
+        assert_eq!(settings.actix.keep_alive, KeepAlive::Seconds(42));
+        Ok(())
+    }
+
+    #[test]
+    fn override_field_with_env_var__keep_alive() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(settings.actix.keep_alive, KeepAlive::Default);
+        std::env::set_var("OVERRIDE__KEEP_ALIVE", "42 seconds");
+        Settings::override_field_with_env_var(
+            &mut settings.actix.keep_alive,
+            "OVERRIDE__KEEP_ALIVE",
+        )?;
+        assert_eq!(settings.actix.keep_alive, KeepAlive::Seconds(42));
+        Ok(())
+    }
+
+    #[test]
+    fn override_field__client_timeout() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(settings.actix.client_timeout, Timeout::Default);
+        Settings::override_field(&mut settings.actix.client_timeout, "42 seconds")?;
+        assert_eq!(settings.actix.client_timeout, Timeout::Seconds(42));
+        Ok(())
+    }
+
+    #[test]
+    fn override_field_with_env_var__client_timeout() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(settings.actix.client_timeout, Timeout::Default);
+        std::env::set_var("OVERRIDE__CLIENT_TIMEOUT", "42 seconds");
+        Settings::override_field_with_env_var(
+            &mut settings.actix.client_timeout,
+            "OVERRIDE__CLIENT_TIMEOUT",
+        )?;
+        assert_eq!(settings.actix.client_timeout, Timeout::Seconds(42));
+        Ok(())
+    }
+
+    #[test]
+    fn override_field__client_shutdown() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(settings.actix.client_shutdown, Timeout::Default);
+        Settings::override_field(&mut settings.actix.client_shutdown, "42 seconds")?;
+        assert_eq!(settings.actix.client_shutdown, Timeout::Seconds(42));
+        Ok(())
+    }
+
+    #[test]
+    fn override_field_with_env_var__client_shutdown() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(settings.actix.client_shutdown, Timeout::Default);
+        std::env::set_var("OVERRIDE__CLIENT_SHUTDOWN", "42 seconds");
+        Settings::override_field_with_env_var(
+            &mut settings.actix.client_shutdown,
+            "OVERRIDE__CLIENT_SHUTDOWN",
+        )?;
+        assert_eq!(settings.actix.client_shutdown, Timeout::Seconds(42));
+        Ok(())
+    }
+
+    #[test]
+    fn override_field__shutdown_timeout() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(settings.actix.shutdown_timeout, Timeout::Default);
+        Settings::override_field(&mut settings.actix.shutdown_timeout, "42 seconds")?;
+        assert_eq!(settings.actix.shutdown_timeout, Timeout::Seconds(42));
+        Ok(())
+    }
+
+    #[test]
+    fn override_field_with_env_var__shutdown_timeout() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(settings.actix.shutdown_timeout, Timeout::Default);
+        std::env::set_var("OVERRIDE__SHUTDOWN_TIMEOUT", "42 seconds");
+        Settings::override_field_with_env_var(
+            &mut settings.actix.shutdown_timeout,
+            "OVERRIDE__SHUTDOWN_TIMEOUT",
+        )?;
+        assert_eq!(settings.actix.shutdown_timeout, Timeout::Seconds(42));
+        Ok(())
+    }
+
+    #[test]
+    fn override_field__tls__enabled() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert!(!settings.actix.tls.enabled);
+        Settings::override_field(&mut settings.actix.tls.enabled, "true")?;
+        assert!(settings.actix.tls.enabled);
+        Ok(())
+    }
+
+    #[test]
+    fn override_field_with_env_var__tls__enabled() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert!(!settings.actix.tls.enabled);
+        std::env::set_var("OVERRIDE__TLS_ENABLED", "true");
+        Settings::override_field_with_env_var(
+            &mut settings.actix.tls.enabled,
+            "OVERRIDE__TLS_ENABLED",
+        )?;
+        assert!(settings.actix.tls.enabled);
+        Ok(())
+    }
+
+    #[test]
+    fn override_field__tls__certificate() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(
+            settings.actix.tls.certificate,
+            Path::new("path/to/cert/cert.pem")
+        );
+        Settings::override_field(
+            &mut settings.actix.tls.certificate,
+            "/overridden/path/to/cert/cert.pem",
+        )?;
+        assert_eq!(
+            settings.actix.tls.certificate,
+            Path::new("/overridden/path/to/cert/cert.pem")
+        );
+        Ok(())
+    }
+
+    #[test]
+    fn override_field_with_env_var__tls__certificate() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(
+            settings.actix.tls.certificate,
+            Path::new("path/to/cert/cert.pem")
+        );
+        std::env::set_var(
+            "OVERRIDE__TLS_CERTIFICATE",
+            "/overridden/path/to/cert/cert.pem",
+        );
+        Settings::override_field_with_env_var(
+            &mut settings.actix.tls.certificate,
+            "OVERRIDE__TLS_CERTIFICATE",
+        )?;
+        assert_eq!(
+            settings.actix.tls.certificate,
+            Path::new("/overridden/path/to/cert/cert.pem")
+        );
+        Ok(())
+    }
+
+    #[test]
+    fn override_field__tls__private_key() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(
+            settings.actix.tls.private_key,
+            Path::new("path/to/cert/key.pem")
+        );
+        Settings::override_field(
+            &mut settings.actix.tls.private_key,
+            "/overridden/path/to/cert/key.pem",
+        )?;
+        assert_eq!(
+            settings.actix.tls.private_key,
+            Path::new("/overridden/path/to/cert/key.pem")
+        );
+        Ok(())
+    }
+
+    #[test]
+    fn override_field_with_env_var__tls__private_key() -> AtResult<()> {
+        let mut settings = Settings::from_default_template()?;
+        assert_eq!(
+            settings.actix.tls.private_key,
+            Path::new("path/to/cert/key.pem")
+        );
+        std::env::set_var(
+            "OVERRIDE__TLS_PRIVATE_KEY",
+            "/overridden/path/to/cert/key.pem",
+        );
+        Settings::override_field_with_env_var(
+            &mut settings.actix.tls.private_key,
+            "OVERRIDE__TLS_PRIVATE_KEY",
+        )?;
+        assert_eq!(
+            settings.actix.tls.private_key,
+            Path::new("/overridden/path/to/cert/key.pem")
+        );
+        Ok(())
+    }
+
+    #[test]
+    fn override_extended_field_with_custom_type() -> AtResult<()> {
+        #[derive(Debug, Clone, Deserialize, PartialEq, Eq)]
+        struct NestedSetting {
+            foo: String,
+            bar: bool,
+        }
+        #[derive(Debug, Clone, Deserialize, PartialEq, Eq)]
+        struct AppSettings {
+            #[serde(rename = "example-name")]
+            example_name: String,
+            #[serde(rename = "nested-field")]
+            nested_field: NestedSetting,
+        }
+        type CustomSettings = BasicSettings<AppSettings>;
+        let mut settings = CustomSettings::from_template(
+            &(CustomSettings::DEFAULT_TOML_TEMPLATE.to_string()
+                // NOTE: Add these entries to the `[application]` table:
+                + "\nexample-name = \"example value\""
+                + "\nnested-field = { foo = \"foo\", bar = false }"),
+        )?;
+        assert_eq!(
+            settings.application,
+            AppSettings {
+                example_name: "example value".into(),
+                nested_field: NestedSetting {
+                    foo: "foo".into(),
+                    bar: false,
+                },
+            }
+        );
+        CustomSettings::override_field(
+            &mut settings.application.example_name,
+            "/overridden/path/to/cert/key.pem",
+        )?;
+        assert_eq!(
+            settings.application,
+            AppSettings {
+                example_name: "/overridden/path/to/cert/key.pem".into(),
+                nested_field: NestedSetting {
+                    foo: "foo".into(),
+                    bar: false,
+                },
+            }
+        );
+        Ok(())
+    }
+}
+
+
\ No newline at end of file