From 9210aa9b4c37138babb185bb100a9758dccefa56 Mon Sep 17 00:00:00 2001 From: robjtede Date: Mon, 11 Oct 2021 01:57:28 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=20798a5?= =?UTF-8?q?d6d0e48de06e2bd9ac1a48098110aabbdca=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- actix_cors/enum.CorsError.html | 30 ++-- actix_cors/index.html | 14 +- actix_cors/struct.Cors.html | 64 ++++---- actix_identity/index.html | 20 +-- .../struct.CookieIdentityPolicy.html | 22 +-- actix_identity/struct.Identity.html | 28 ++-- actix_identity/struct.IdentityService.html | 18 ++- actix_identity/trait.IdentityPolicy.html | 2 +- actix_protobuf/enum.ProtoBufPayloadError.html | 26 +-- actix_protobuf/index.html | 6 +- actix_protobuf/struct.ProtoBuf.html | 20 ++- actix_protobuf/struct.ProtoBufConfig.html | 18 ++- actix_protobuf/struct.ProtoBufMessage.html | 22 +-- .../trait.ProtoBufResponseBuilder.html | 2 +- actix_redis/enum.Error.html | 28 ++-- actix_redis/enum.RespError.html | 38 +++-- actix_redis/enum.RespValue.html | 42 ++--- actix_redis/enum.SameSite.html | 32 ++-- actix_redis/index.html | 16 +- actix_redis/struct.Command.html | 18 ++- actix_redis/struct.RedisActor.html | 22 +-- actix_redis/struct.RedisSession.html | 18 ++- actix_session/enum.SessionStatus.html | 22 +-- actix_session/index.html | 18 +-- actix_session/struct.CookieSession.html | 20 ++- actix_session/struct.Session.html | 26 +-- actix_session/trait.UserSession.html | 2 +- .../extractors/basic/index.html | 6 +- .../extractors/basic/struct.BasicAuth.html | 28 ++-- .../extractors/basic/struct.Config.html | 20 ++- .../extractors/bearer/enum.Error.html | 42 ++--- .../extractors/bearer/index.html | 10 +- .../extractors/bearer/struct.BearerAuth.html | 28 ++-- .../extractors/bearer/struct.Config.html | 20 ++- actix_web_httpauth/extractors/index.html | 16 +- .../struct.AuthenticationError.html | 30 ++-- .../extractors/trait.AuthExtractor.html | 2 +- .../extractors/trait.AuthExtractorConfig.html | 2 +- .../authorization/enum.ParseError.html | 36 +++-- .../headers/authorization/index.html | 16 +- .../authorization/struct.Authorization.html | 46 +++--- .../headers/authorization/struct.Basic.html | 44 ++--- .../headers/authorization/struct.Bearer.html | 44 ++--- .../headers/authorization/trait.Scheme.html | 4 +- actix_web_httpauth/headers/index.html | 6 +- .../headers/www_authenticate/basic/index.html | 4 +- .../www_authenticate/basic/struct.Basic.html | 50 +++--- .../www_authenticate/bearer/enum.Error.html | 42 ++--- .../www_authenticate/bearer/index.html | 10 +- .../bearer/struct.Bearer.html | 48 +++--- .../bearer/struct.BearerBuilder.html | 18 ++- .../headers/www_authenticate/index.html | 14 +- .../struct.WwwAuthenticate.html | 42 ++--- actix_web_httpauth/index.html | 10 +- actix_web_httpauth/middleware/index.html | 4 +- .../middleware/struct.HttpAuthentication.html | 30 ++-- ayu.css | 2 +- dark.css | 2 +- .../transform/trait.Transform.js | 2 +- implementors/core/convert/trait.From.js | 2 +- implementors/core/marker/trait.Freeze.js | 2 +- light.css | 2 +- main.js | 4 +- rustdoc.css | 2 +- search-index.js | 10 +- src/actix_cors/all_or_some.rs.html | 18 +-- src/actix_cors/builder.rs.html | 152 +++++++++++++----- src/actix_cors/error.rs.html | 4 +- src/actix_cors/inner.rs.html | 58 +++---- src/actix_cors/middleware.rs.html | 12 +- src/actix_identity/cookie.rs.html | 56 +++---- src/actix_identity/identity.rs.html | 6 +- src/actix_identity/lib.rs.html | 12 +- src/actix_identity/middleware.rs.html | 20 +-- src/actix_protobuf/lib.rs.html | 52 +++--- src/actix_redis/redis.rs.html | 14 +- src/actix_redis/session.rs.html | 86 +++++----- src/actix_session/cookie.rs.html | 76 ++++----- src/actix_session/lib.rs.html | 30 ++-- .../extractors/basic.rs.html | 14 +- .../extractors/bearer.rs.html | 20 +-- .../extractors/config.rs.html | 4 +- .../extractors/errors.rs.html | 12 +- src/actix_web_httpauth/extractors/mod.rs.html | 2 +- .../headers/authorization/errors.rs.html | 34 ++-- .../headers/authorization/header.rs.html | 16 +- .../authorization/scheme/basic.rs.html | 18 +-- .../authorization/scheme/bearer.rs.html | 16 +- .../headers/authorization/scheme/mod.rs.html | 2 +- .../www_authenticate/challenge/basic.rs.html | 10 +- .../challenge/bearer/builder.rs.html | 12 +- .../challenge/bearer/challenge.rs.html | 8 +- .../challenge/bearer/errors.rs.html | 18 +-- .../www_authenticate/challenge/mod.rs.html | 2 +- .../headers/www_authenticate/header.rs.html | 6 +- src/actix_web_httpauth/middleware.rs.html | 30 ++-- src/actix_web_httpauth/utils.rs.html | 16 +- 97 files changed, 1168 insertions(+), 962 deletions(-) diff --git a/actix_cors/enum.CorsError.html b/actix_cors/enum.CorsError.html index 880c0b1dd..3f1d7f64b 100644 --- a/actix_cors/enum.CorsError.html +++ b/actix_cors/enum.CorsError.html @@ -1,4 +1,4 @@ -CorsError in actix_cors - Rust

Enum actix_cors::CorsError[][src]

#[non_exhaustive]
+CorsError in actix_cors - Rust

Enum actix_cors::CorsError[][src]

#[non_exhaustive]
 pub enum CorsError {
     WildcardOrigin,
     MissingOrigin,
@@ -18,25 +18,25 @@ pub enum CorsError {
 
MethodNotAllowed

Request method is not allowed.

HeadersNotAllowed

One or more request headers are not allowed.

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

+

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

-

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

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

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

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Returns appropriate status code for error. Read more

+

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

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

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

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Returns appropriate status code for error. Read more

Creates full response for error. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The resulting type after obtaining ownership.

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

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

recently added

@@ -46,6 +46,10 @@ pub enum CorsError {

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_cors/index.html b/actix_cors/index.html index 45c61a903..44e91c612 100644 --- a/actix_cors/index.html +++ b/actix_cors/index.html @@ -3,17 +3,17 @@ Cors builder can be used as an argument for Actix Web’s App::wrap(), Scope::wrap(), or Resource::wrap() methods.

This CORS middleware automatically handles OPTIONS preflight requests.

-

Example

+

Example

use actix_cors::Cors;
 use actix_web::{get, http, web, App, HttpRequest, HttpResponse, HttpServer};
 
 #[get("/index.html")]
-async fn index(req: HttpRequest) -> &'static str {
+async fn index(req: HttpRequest) -> &'static str {
     "<p>Hello World!</p>"
 }
 
 #[actix_web::main]
-async fn main() -> std::io::Result<()> {
+async fn main() -> std::io::Result<()> {
     HttpServer::new(|| {
         let cors = Cors::default()
               .allowed_origin("https://www.rust-lang.org/")
@@ -36,9 +36,9 @@
     Ok(())
 }

Structs

-

Builder for CORS middleware.

-

Enums

-

Errors that can occur when processing CORS guarded requests.

-
+

Builder for CORS middleware.

+

Enums

+

Errors that can occur when processing CORS guarded requests.

+
\ No newline at end of file diff --git a/actix_cors/struct.Cors.html b/actix_cors/struct.Cors.html index d40ddc24a..10af09b06 100644 --- a/actix_cors/struct.Cors.html +++ b/actix_cors/struct.Cors.html @@ -1,14 +1,14 @@ -Cors in actix_cors - Rust

Struct actix_cors::Cors[][src]

pub struct Cors { /* fields omitted */ }
Expand description

Builder for CORS middleware.

+Cors in actix_cors - Rust

Struct actix_cors::Cors[][src]

pub struct Cors { /* fields omitted */ }
Expand description

Builder for CORS middleware.

To construct a CORS middleware, call Cors::default() to create a blank, restrictive builder. Then use any of the builder methods to customize CORS behavior.

The alternative Cors::permissive() constructor is available for local development, allowing all origins and headers, etc. The permissive constructor should not be used in production.

-

Errors

+

Errors

Errors surface in the middleware initialization phase. This means that, if you have logs enabled in Actix Web (using env_logger or other crate that exposes logs from the log crate), error messages will outline what is wrong with the CORS configuration in the server logs and the server will fail to start up or serve requests.

-

Example

+

Example

use actix_cors::Cors;
 use actix_web::http::header;
 
@@ -20,12 +20,12 @@ server will fail to start up or serve requests.

.max_age(3600); // `cors` can now be used in `App::wrap`.
-

Implementations

A very permissive set of default for quick development. Not recommended for production use.

+

Implementations

A very permissive set of default for quick development. Not recommended for production use.

All origins, methods, request headers and exposed headers allowed. Credentials supported. Max age 1 hour. Does not send wildcard.

-

Resets allowed origin list to a state where any origin is accepted.

+

Resets allowed origin list to a state where any origin is accepted.

See Cors::allowed_origin for more info on allowed origins.

-

Add an origin that is allowed to make requests.

+

Add an origin that is allowed to make requests.

By default, requests from all origins are accepted by CORS logic. This method allows to specify a finite set of origins to verify the value of the Origin request header.

These are origin-or-null types in the Fetch Standard.

@@ -38,44 +38,44 @@ response header.

If the origin of the request doesn’t match any allowed origins and at least one allowed_origin_fn function is set, these functions will be used to determinate allowed origins.

-

Initialization Errors

+
Initialization Errors
  • If supplied origin is not valid uri
  • If supplied origin is a wildcard (*). Cors::send_wildcard should be used instead.
-

Determinate allowed origins by processing requests which didn’t match any origins specified +

Determinate allowed origins by processing requests which didn’t match any origins specified in the allowed_origin.

The function will receive two parameters, the Origin header value, and the RequestHead of each request, which can be used to determine whether to allow the request or not.

If the function returns true, the client’s Origin request header will be echoed back into the Access-Control-Allow-Origin response header.

-

Resets allowed methods list to all methods.

+

Resets allowed methods list to all methods.

See Cors::allowed_methods for more info on allowed methods.

-

Set a list of methods which allowed origins can perform.

+

Set a list of methods which allowed origins can perform.

These will be sent in the Access-Control-Allow-Methods response header as specified in the Fetch Standard CORS protocol.

Defaults to [GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE]

-

Resets allowed request header list to a state where any header is accepted.

+

Resets allowed request header list to a state where any header is accepted.

See Cors::allowed_headers for more info on allowed request headers.

-

Add an allowed request header.

+

Add an allowed request header.

See Cors::allowed_headers for more info on allowed request headers.

-

Set a list of request header field names which can be used when this resource is accessed by +

Set a list of request header field names which can be used when this resource is accessed by allowed origins.

If All is set, whatever is requested by the client in Access-Control-Request-Headers will be echoed back in the Access-Control-Allow-Headers header as specified in the Fetch Standard CORS protocol.

Defaults to All.

-

Resets exposed response header list to a state where any header is accepted.

+

Resets exposed response header list to a state where any header is accepted.

See Cors::expose_headers for more info on exposed response headers.

-

Set a list of headers which are safe to expose to the API of a CORS API specification. +

Set a list of headers which are safe to expose to the API of a CORS API specification. This corresponds to the Access-Control-Expose-Headers response header as specified in the Fetch Standard CORS protocol.

This defaults to an empty set.

-

Set a maximum time (in seconds) for which this CORS request maybe cached. +

Set a maximum time (in seconds) for which this CORS request maybe cached. This value is set as the Access-Control-Max-Age header as specified in the Fetch Standard CORS protocol.

Pass a number (of seconds) or use None to disable sending max age header.

-

Set to use wildcard origins.

+

Set to use wildcard origins.

If send wildcard is set and the allowed_origins parameter is All, a wildcard Access-Control-Allow-Origin response header is sent, rather than the request’s Origin header.

@@ -83,7 +83,7 @@ the Fetch Standard C allow_credentials set to true. Depending on the mode of usage, this will either result in an CorsError::CredentialsWithWildcardOrigin error during actix launch or runtime.

Defaults to false.

-

Allows users to make authenticated requests

+

Allows users to make authenticated requests

If true, injects the Access-Control-Allow-Credentials header in responses. This allows cookies and credentials to be submitted across domains as specified in the Fetch Standard CORS protocol.

@@ -92,41 +92,45 @@ the Fetch Standard C

Defaults to false.

A server initialization error will occur if credentials are allowed, but the Origin is set to send wildcards (*); this is not allowed by the CORS protocol.

-

Disable Vary header support.

+

Disable Vary header support.

When enabled the header Vary: Origin will be returned as per the Fetch Standard implementation guidelines.

Setting this header when the Access-Control-Allow-Origin is dynamically generated (eg. when there is more than one allowed origin, and an Origin other than ‘*’ is returned) informs CDNs and other caches that the CORS headers are dynamic, and cannot be cached.

By default, Vary header support is enabled.

-

Disable support for preflight requests.

+

Disable support for preflight requests.

When enabled CORS middleware automatically handles OPTIONS requests. This is useful for application level middleware.

By default preflight support is enabled.

-

Trait Implementations

Formats the value using the given formatter. Read more

-

A restrictive (security paranoid) set of defaults.

+

Trait Implementations

Formats the value using the given formatter. Read more

+

A restrictive (security paranoid) set of defaults.

No allowed origins, methods, request headers or exposed headers. Credentials not supported. No max age (will use browser’s default).

-

Responses produced by the service.

+

Responses produced by the service.

Errors produced by the service.

Errors produced while building a transform service.

The TransformService value created by this factory

The future response value.

-

Creates and returns a new Transform component, asynchronously

+

Creates and returns a new Transform component, asynchronously

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

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

+

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

+
\ No newline at end of file diff --git a/actix_identity/index.html b/actix_identity/index.html index 555633893..d7352ca6a 100644 --- a/actix_identity/index.html +++ b/actix_identity/index.html @@ -8,7 +8,7 @@ identity information.

use actix_identity::{Identity, CookieIdentityPolicy, IdentityService}; #[get("/")] -async fn index(id: Identity) -> String { +async fn index(id: Identity) -> String { // access request identity if let Some(id) = id.identity() { format!("Welcome! {}", id) @@ -18,13 +18,13 @@ identity information.

} #[post("/login")] -async fn login(id: Identity) -> HttpResponse { +async fn login(id: Identity) -> HttpResponse { id.remember("User1".to_owned()); // <- remember identity HttpResponse::Ok().finish() } #[post("/logout")] -async fn logout(id: Identity) -> HttpResponse { +async fn logout(id: Identity) -> HttpResponse { id.forget(); // <- remove identity HttpResponse::Ok().finish() } @@ -39,12 +39,12 @@ identity information.

.wrap(IdentityService::new(policy)) .service(services![index, login, logout]);

Structs

-

Use cookies for request identity storage.

-

The extractor type to obtain your identity from a request.

-

Request identity middleware

-

Traits

-

Identity policy.

-

Helper trait that allows to get Identity.

-
+

Use cookies for request identity storage.

+

The extractor type to obtain your identity from a request.

+

Request identity middleware

+

Traits

+

Identity policy.

+

Helper trait that allows to get Identity.

+
\ No newline at end of file diff --git a/actix_identity/struct.CookieIdentityPolicy.html b/actix_identity/struct.CookieIdentityPolicy.html index d5455fd32..187784898 100644 --- a/actix_identity/struct.CookieIdentityPolicy.html +++ b/actix_identity/struct.CookieIdentityPolicy.html @@ -1,6 +1,6 @@ -CookieIdentityPolicy in actix_identity - Rust

Struct actix_identity::CookieIdentityPolicy[][src]

pub struct CookieIdentityPolicy(_);
Expand description

Use cookies for request identity storage.

+CookieIdentityPolicy in actix_identity - Rust

Struct actix_identity::CookieIdentityPolicy[][src]

pub struct CookieIdentityPolicy(_);
Expand description

Use cookies for request identity storage.

See this page on MDN for details on cookie attributes.

-

Examples

+

Examples

use actix_web::App;
 use actix_identity::{CookieIdentityPolicy, IdentityService};
 
@@ -17,7 +17,7 @@
 

Implementations

Create new CookieIdentityPolicy instance.

Key argument is the private key for issued cookies. If this value is changed, all issued cookie identities are invalidated.

-

Panics

+
Panics

Panics if key is less than 32 bytes in length..

Sets the name of issued cookies.

Sets the Path attribute of issued cookies.

@@ -48,16 +48,20 @@ into the issued cookies, making it immutable to users.

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

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

+

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

+
\ No newline at end of file diff --git a/actix_identity/struct.Identity.html b/actix_identity/struct.Identity.html index d58e7c39a..beff26d39 100644 --- a/actix_identity/struct.Identity.html +++ b/actix_identity/struct.Identity.html @@ -1,10 +1,10 @@ -Identity in actix_identity - Rust

Struct actix_identity::Identity[][src]

pub struct Identity(_);
Expand description

The extractor type to obtain your identity from a request.

+Identity in actix_identity - Rust

Struct actix_identity::Identity[][src]

pub struct Identity(_);
Expand description

The extractor type to obtain your identity from a request.

use actix_web::*;
 use actix_identity::Identity;
 
 #[get("/")]
-async fn index(id: Identity) -> impl Responder {
+async fn index(id: Identity) -> impl Responder {
     // access request identity
     if let Some(id) = id.identity() {
         format!("Welcome! {}", id)
@@ -14,7 +14,7 @@
 }
 
 #[post("/login")]
-async fn login(id: Identity) -> impl Responder {
+async fn login(id: Identity) -> impl Responder {
     // remember identity
     id.remember("User1".to_owned());
 
@@ -22,7 +22,7 @@
 }
 
 #[post("/logout")]
-async fn logout(id: Identity) -> impl Responder {
+async fn logout(id: Identity) -> impl Responder {
     // remove identity
     id.forget();
 
@@ -33,13 +33,13 @@ found associated with the request.

Remember identity.

This method is used to ‘forget’ the current identity on subsequent requests.

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

+

Performs copy-assignment from source. Read more

Extractor implementation for Identity type.

use actix_identity::Identity;
 
 #[get("/")]
-async fn index(id: Identity) -> impl Responder {
+async fn index(id: Identity) -> impl Responder {
     // access request identity
     if let Some(id) = id.identity() {
         format!("Welcome! {}", id)
@@ -57,12 +57,12 @@ found associated with the request.

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The resulting type after obtaining ownership.

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

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

recently added

@@ -71,6 +71,10 @@ found associated with the request.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_identity/struct.IdentityService.html b/actix_identity/struct.IdentityService.html index 6d46e5b9a..f1b2c9742 100644 --- a/actix_identity/struct.IdentityService.html +++ b/actix_identity/struct.IdentityService.html @@ -1,4 +1,4 @@ -IdentityService in actix_identity - Rust

Struct actix_identity::IdentityService[][src]

pub struct IdentityService<T> { /* fields omitted */ }
Expand description

Request identity middleware

+IdentityService in actix_identity - Rust

Struct actix_identity::IdentityService[][src]

pub struct IdentityService<T> { /* fields omitted */ }
Expand description

Request identity middleware

use actix_web::App;
 use actix_identity::{CookieIdentityPolicy, IdentityService};
@@ -22,16 +22,20 @@
 

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

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

+

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

+
\ No newline at end of file diff --git a/actix_identity/trait.IdentityPolicy.html b/actix_identity/trait.IdentityPolicy.html index 0800bd0ad..7d6b84c4d 100644 --- a/actix_identity/trait.IdentityPolicy.html +++ b/actix_identity/trait.IdentityPolicy.html @@ -8,6 +8,6 @@

The return type of the middleware

Required methods

Parse the session from request and load data from a service identity.

Write changes to response

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/actix_protobuf/enum.ProtoBufPayloadError.html b/actix_protobuf/enum.ProtoBufPayloadError.html index 657de9781..b75f3b378 100644 --- a/actix_protobuf/enum.ProtoBufPayloadError.html +++ b/actix_protobuf/enum.ProtoBufPayloadError.html @@ -1,4 +1,4 @@ -ProtoBufPayloadError in actix_protobuf - Rust

Enum actix_protobuf::ProtoBufPayloadError[][src]

pub enum ProtoBufPayloadError {
+ProtoBufPayloadError in actix_protobuf - Rust

Enum actix_protobuf::ProtoBufPayloadError[][src]

pub enum ProtoBufPayloadError {
     Overflow,
     ContentType,
     Serialize(ProtoBufEncodeError),
@@ -6,30 +6,34 @@
     Payload(PayloadError),
 }

Variants

Overflow

Payload size is bigger than 256k

ContentType

Content type error

-
Serialize

Serialize error

-

Tuple Fields of Serialize

Deserialize

Deserialize error

-

Tuple Fields of Deserialize

Payload

Payload error

+

Serialize error

+

Tuple Fields of Serialize

Deserialize(ProtoBufDecodeError)

Deserialize error

+

Tuple Fields of Deserialize

Payload(PayloadError)

Payload error

Tuple Fields of Payload

0: PayloadError

Trait Implementations

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

Performs the conversion.

Performs the conversion.

Creates full response for error. Read more

-

Returns appropriate status code for error. Read more

+

Returns appropriate status code for error. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

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

+

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

+
\ No newline at end of file diff --git a/actix_protobuf/index.html b/actix_protobuf/index.html index e3bc5a292..290f63a96 100644 --- a/actix_protobuf/index.html +++ b/actix_protobuf/index.html @@ -1,6 +1,6 @@ actix_protobuf - Rust

Crate actix_protobuf[][src]

Structs

-

Enums

-

Traits

-
+

Enums

+

Traits

+
\ No newline at end of file diff --git a/actix_protobuf/struct.ProtoBuf.html b/actix_protobuf/struct.ProtoBuf.html index 50612b94b..05dcc16c7 100644 --- a/actix_protobuf/struct.ProtoBuf.html +++ b/actix_protobuf/struct.ProtoBuf.html @@ -1,4 +1,4 @@ -ProtoBuf in actix_protobuf - Rust

Struct actix_protobuf::ProtoBuf[][src]

pub struct ProtoBuf<T: Message>(pub T);

Tuple Fields

0: T

Trait Implementations

Formats the value using the given formatter. Read more

+ProtoBuf in actix_protobuf - Rust

Struct actix_protobuf::ProtoBuf[][src]

pub struct ProtoBuf<T: Message>(pub T);

Tuple Fields

0: T

Trait Implementations

Formats the value using the given formatter. Read more

The resulting type after dereferencing.

Dereferences the value.

Mutably dereferences the value.

@@ -10,23 +10,27 @@

Create a Self from request head asynchronously. Read more

Create and configure config instance.

Convert self to HttpResponse.

-

Override a status code for a Responder. Read more

+

Override a status code for a Responder. Read more

Insert header to the final response. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

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

+

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

+
\ No newline at end of file diff --git a/actix_protobuf/struct.ProtoBufConfig.html b/actix_protobuf/struct.ProtoBufConfig.html index ff8415ac1..8c1ad4c7c 100644 --- a/actix_protobuf/struct.ProtoBufConfig.html +++ b/actix_protobuf/struct.ProtoBufConfig.html @@ -1,19 +1,23 @@ -ProtoBufConfig in actix_protobuf - Rust

Struct actix_protobuf::ProtoBufConfig[][src]

pub struct ProtoBufConfig { /* fields omitted */ }

Implementations

Change max size of payload. By default max size is 256Kb

+ProtoBufConfig in actix_protobuf - Rust

Struct actix_protobuf::ProtoBufConfig[][src]

pub struct ProtoBufConfig { /* fields omitted */ }

Implementations

Change max size of payload. By default max size is 256Kb

Trait Implementations

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

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

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

+

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

+
\ No newline at end of file diff --git a/actix_protobuf/struct.ProtoBufMessage.html b/actix_protobuf/struct.ProtoBufMessage.html index 9247a917d..a8f86eb88 100644 --- a/actix_protobuf/struct.ProtoBufMessage.html +++ b/actix_protobuf/struct.ProtoBufMessage.html @@ -1,4 +1,4 @@ -ProtoBufMessage in actix_protobuf - Rust

Struct actix_protobuf::ProtoBufMessage[][src]

pub struct ProtoBufMessage<T: Message + Default> { /* fields omitted */ }

Implementations

Create ProtoBufMessage for request.

+ProtoBufMessage in actix_protobuf - Rust

Struct actix_protobuf::ProtoBufMessage[][src]

pub struct ProtoBufMessage<T: Message + Default> { /* fields omitted */ }

Implementations

Create ProtoBufMessage for request.

Change max size of payload. By default max size is 256Kb

Trait Implementations

The type of value produced on completion.

Attempt to resolve the future to a final value, registering @@ -29,7 +29,7 @@ completed. This method can be used to turn any Future into a

Catches unwinding panics while polling the future. Read more

Create a cloneable handle to this future where all handles will resolve to the same result. Read more

-

Wrap the future in a Box, pinning it. Read more

+

Wrap the future in a Box, pinning it. Read more

Wrap the future in a Box, pinning it. Read more

Turns a Future<Output = T> into a TryFuture<Ok = T, Error = ()>. Read more

@@ -38,15 +38,15 @@ to the same result. Read more

A convenience for calling Future::poll on Unpin future types.

Evaluates and consumes the future, returning the resulting output if the future is ready after the first call to Future::poll. Read more

-

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

-

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

+

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

+

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

Performs the conversion.

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

The output that the future will produce on completion.

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

Which kind of future are we turning this into?

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

Creates a future from a value.

-

Should always be Self

+

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type of successful values yielded by this future

@@ -55,7 +55,7 @@ the future is ready after the first call to Future::poll.

Flattens the execution of this future when the successful result of this future is a [Sink]. Read more

Maps this future’s success value to a different value. Read more

-

Maps this future’s success value to a different value, and permits for error handling resulting in the same type. Read more

+

Maps this future’s success value to a different value, and permits for error handling resulting in the same type. Read more

Maps this future’s error value to a different value. Read more

Maps this future’s Error to a new error type using the Into trait. Read more

@@ -80,6 +80,10 @@ future is a stream. Read more

future types. Read more

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_protobuf/trait.ProtoBufResponseBuilder.html b/actix_protobuf/trait.ProtoBufResponseBuilder.html index 4b3e8e3ad..1358bdc96 100644 --- a/actix_protobuf/trait.ProtoBufResponseBuilder.html +++ b/actix_protobuf/trait.ProtoBufResponseBuilder.html @@ -1,5 +1,5 @@ ProtoBufResponseBuilder in actix_protobuf - Rust

Trait actix_protobuf::ProtoBufResponseBuilder[][src]

pub trait ProtoBufResponseBuilder {
     fn protobuf<T: Message>(&mut self, value: T) -> Result<HttpResponse, Error>;
-}

Required methods

Implementations on Foreign Types

Implementors

+}

Required methods

Implementations on Foreign Types

Implementors

\ No newline at end of file diff --git a/actix_redis/enum.Error.html b/actix_redis/enum.Error.html index 8a864c20e..cb78973a9 100644 --- a/actix_redis/enum.Error.html +++ b/actix_redis/enum.Error.html @@ -1,34 +1,38 @@ -Error in actix_redis - Rust

Enum actix_redis::Error[][src]

pub enum Error {
+Error in actix_redis - Rust

Enum actix_redis::Error[][src]

pub enum Error {
     Redis(Error),
     NotConnected,
     Disconnected,
 }
Expand description

General purpose actix redis error

-

Variants

Redis

Tuple Fields of Redis

0: Error
NotConnected

Receiving message during reconnecting

+

Variants

Redis(Error)

Tuple Fields of Redis

0: Error
NotConnected

Receiving message during reconnecting

Disconnected

Cancel all waters when connection get dropped

Trait Implementations

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

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

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

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

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

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

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

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Performs the conversion.

-

Returns appropriate status code for error. Read more

+

Returns appropriate status code for error. Read more

Creates full response for error. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

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

+

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

+
\ No newline at end of file diff --git a/actix_redis/enum.RespError.html b/actix_redis/enum.RespError.html index cbb7e087a..5f7b6f4ba 100644 --- a/actix_redis/enum.RespError.html +++ b/actix_redis/enum.RespError.html @@ -1,4 +1,4 @@ -RespError in actix_redis - Rust

Enum actix_redis::RespError[]

pub enum RespError {
+RespError in actix_redis - Rust

Enum actix_redis::RespError[]

pub enum RespError {
     Internal(String),
     IO(Error),
     RESP(StringOption<RespValue>),
@@ -6,22 +6,22 @@
     Connection(ConnectionReason),
     Unexpected(String),
 }

Variants

Internal(String)

A non-specific internal error that prevented an operation from completing

-
IO(Error)

An IO error occurred

-

A RESP parsing/serialising error occurred

-
Remote(String)

A remote error

-
Connection(ConnectionReason)

Error creating a connection, or an error with a connection being closed unexpectedly

-
Unexpected(String)

An unexpected error. In this context “unexpected” means +

Tuple Fields of Internal

0: String
IO(Error)

An IO error occurred

+

Tuple Fields of IO

0: Error

A RESP parsing/serialising error occurred

+

Tuple Fields of RESP

Remote(String)

A remote error

+

Tuple Fields of Remote

0: String
Connection(ConnectionReason)

Error creating a connection, or an error with a connection being closed unexpectedly

+

Tuple Fields of Connection

0: ConnectionReason
Unexpected(String)

An unexpected error. In this context “unexpected” means “unexpected because we check ahead of time”, it used to maintain the type signature of chains of futures; but it occurring at runtime should be considered a catastrophic failure.

If any error is propagated this way that needs to be handled, then it should be made into a proper option.

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

+

Tuple Fields of Unexpected

0: String

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

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

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

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

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

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

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

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Performs the conversion.

Performs the conversion.

Performs the conversion.

@@ -29,17 +29,21 @@ a proper option.

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

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

+

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

+
\ No newline at end of file diff --git a/actix_redis/enum.RespValue.html b/actix_redis/enum.RespValue.html index 8123db173..aa3082025 100644 --- a/actix_redis/enum.RespValue.html +++ b/actix_redis/enum.RespValue.html @@ -1,4 +1,4 @@ -RespValue in actix_redis - Rust

Enum actix_redis::RespValue[]

pub enum RespValue {
+RespValue in actix_redis - Rust

Enum actix_redis::RespValue[]

pub enum RespValue {
     Nil,
     Array(Vec<RespValue, Global>),
     BulkString(Vec<u8, Global>),
@@ -9,26 +9,26 @@
 

It is cloneable to allow multiple copies to be delivered in certain circumstances, e.g. multiple subscribers to the same topic.

Variants

Nil

Zero, one or more other RespValues.

-
BulkString(Vec<u8, Global>)

A bulk string. In Redis terminology a string is a byte-array, so this is stored as a +

Tuple Fields of Array

BulkString(Vec<u8, Global>)

A bulk string. In Redis terminology a string is a byte-array, so this is stored as a vector of u8s to allow clients to interpret the bytes as appropriate.

-
Error(String)

An error from the Redis server

-
Integer(i64)

Redis documentation defines an integer as being a signed 64-bit integer: +

Tuple Fields of BulkString

0: Vec<u8, Global>
Error(String)

An error from the Redis server

+

Tuple Fields of Error

0: String
Integer(i64)

Redis documentation defines an integer as being a signed 64-bit integer: https://redis.io/topics/protocol#resp-integers

-
SimpleString(String)

Implementations

Convenience function for building dynamic Redis commands with variable numbers of +

Tuple Fields of Integer

0: i64
SimpleString(String)

Tuple Fields of SimpleString

0: String

Implementations

Convenience function for building dynamic Redis commands with variable numbers of arguments, e.g. RPUSH

This will panic if called for anything other than arrays

Push item to Resp array

This will panic if called for anything other than arrays

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

+

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

+

Performs the conversion.

+

Performs the conversion.

+

Performs the conversion.

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

-

Performs the conversion.

+

Performs the conversion.

+

Performs the conversion.

+

Performs the conversion.

Return a Result containing either Self or Error. Errors can occur due to either: a) the particular RespValue being incompatible with the required type, or b) a remote Redis error occuring. Read more

This method tests for self and other values to be equal, and is used @@ -37,14 +37,14 @@ by ==.

impl Eq for RespValue

Auto Trait Implementations

Blanket 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.

+

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

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The resulting type after obtaining ownership.

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

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

recently added

@@ -53,6 +53,10 @@ by ==.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_redis/enum.SameSite.html b/actix_redis/enum.SameSite.html index 467350ac6..9554e2970 100644 --- a/actix_redis/enum.SameSite.html +++ b/actix_redis/enum.SameSite.html @@ -1,4 +1,4 @@ -SameSite in actix_redis - Rust

Enum actix_redis::SameSite[][src]

pub enum SameSite {
+SameSite in actix_redis - Rust

Enum actix_redis::SameSite[][src]

pub enum SameSite {
     Strict,
     Lax,
     None,
@@ -22,7 +22,7 @@ definition are subject to change.

Lax

The “Lax” SameSite attribute.

None

The “None” SameSite attribute.

Implementations

Returns true if self is SameSite::Strict and false otherwise.

-

Example

+
Example
use cookie::SameSite;
 
 let strict = SameSite::Strict;
@@ -30,7 +30,7 @@ definition are subject to change.

assert!(!strict.is_lax()); assert!(!strict.is_none());

Returns true if self is SameSite::Lax and false otherwise.

-

Example

+
Example
use cookie::SameSite;
 
 let lax = SameSite::Lax;
@@ -38,7 +38,7 @@ definition are subject to change.

assert!(!lax.is_strict()); assert!(!lax.is_none());

Returns true if self is SameSite::None and false otherwise.

-

Example

+
Example
use cookie::SameSite;
 
 let none = SameSite::None;
@@ -46,25 +46,25 @@ definition are subject to change.

assert!(!none.is_lax()); assert!(!none.is_strict());

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

+

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type 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 !=.

+

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.

+

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

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The resulting type after obtaining ownership.

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

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

recently added

@@ -74,6 +74,10 @@ by ==.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_redis/index.html b/actix_redis/index.html index db222849d..34ec230a3 100644 --- a/actix_redis/index.html +++ b/actix_redis/index.html @@ -1,12 +1,12 @@ actix_redis - Rust

Crate actix_redis[][src]

Expand description

Redis integration for Actix and session store for Actix Web.

Structs

-

Command for send data to Redis

-

Redis communication actor

-

Use redis as session storage.

-

Enums

-

General purpose actix redis error

-

A single RESP value, this owns the data that is read/to-be written to Redis.

-

The SameSite cookie attribute.

-
+

Command for send data to Redis

+

Redis communication actor

+

Use redis as session storage.

+

Enums

+

General purpose actix redis error

+

A single RESP value, this owns the data that is read/to-be written to Redis.

+

The SameSite cookie attribute.

+
\ No newline at end of file diff --git a/actix_redis/struct.Command.html b/actix_redis/struct.Command.html index 24dfc8a25..37cc1998b 100644 --- a/actix_redis/struct.Command.html +++ b/actix_redis/struct.Command.html @@ -1,4 +1,4 @@ -Command in actix_redis - Rust

Struct actix_redis::Command[][src]

pub struct Command(pub RespValue);
Expand description

Command for send data to Redis

+Command in actix_redis - Rust

Struct actix_redis::Command[][src]

pub struct Command(pub RespValue);
Expand description

Command for send data to Redis

Tuple Fields

0: RespValue

Trait Implementations

Formats the value using the given formatter. Read more

The type of value that this handler will return. Read more

This method is called for every message received by this actor.

@@ -8,16 +8,20 @@ successful. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

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

+

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

+
\ No newline at end of file diff --git a/actix_redis/struct.RedisActor.html b/actix_redis/struct.RedisActor.html index 9105feac7..bb5f1a584 100644 --- a/actix_redis/struct.RedisActor.html +++ b/actix_redis/struct.RedisActor.html @@ -1,4 +1,4 @@ -RedisActor in actix_redis - Rust

Struct actix_redis::RedisActor[][src]

pub struct RedisActor { /* fields omitted */ }
Expand description

Redis communication actor

+RedisActor in actix_redis - Rust

Struct actix_redis::RedisActor[][src]

pub struct RedisActor { /* fields omitted */ }
Expand description

Redis communication actor

Implementations

Start new Supervisor with RedisActor.

Trait Implementations

Actor execution context type

Called when an actor gets polled the first time.

@@ -7,14 +7,14 @@

Start a new asynchronous actor, returning its address. Read more

Construct and start a new asynchronous actor, returning its address. Read more

-

Start new actor in arbiter’s thread.

+

Start new actor in arbiter’s thread.

Start a new asynchronous actor given a Context. Read more

The type of value that this handler will return. Read more

This method is called for every message received by this actor.

Called for every message emitted by the stream.

Called when stream emits first item. Read more

Called when stream finishes. Read more

-

Register a Stream to the actor context.

+

Register a Stream to the actor context.

Called when the supervisor restarts a failed actor.

Called when the writer emits error. Read more

Called when the writer finishes. Read more

@@ -22,16 +22,20 @@ address. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

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

+

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

+
\ No newline at end of file diff --git a/actix_redis/struct.RedisSession.html b/actix_redis/struct.RedisSession.html index bb5aa59fd..3adefac97 100644 --- a/actix_redis/struct.RedisSession.html +++ b/actix_redis/struct.RedisSession.html @@ -1,4 +1,4 @@ -RedisSession in actix_redis - Rust

Struct actix_redis::RedisSession[][src]

pub struct RedisSession(_);
Expand description

Use redis as session storage.

+RedisSession in actix_redis - Rust

Struct actix_redis::RedisSession[][src]

pub struct RedisSession(_);
Expand description

Use redis as session storage.

You need to pass an address of the redis server and random value to the constructor of RedisSession. This is private key for cookie session, When this value is changed, all session data is lost.

@@ -32,16 +32,20 @@ connection is secure - i.e. https.

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

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

+

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

+
\ No newline at end of file diff --git a/actix_session/enum.SessionStatus.html b/actix_session/enum.SessionStatus.html index d88a6cfd7..44c72d3a5 100644 --- a/actix_session/enum.SessionStatus.html +++ b/actix_session/enum.SessionStatus.html @@ -1,4 +1,4 @@ -SessionStatus in actix_session - Rust

Enum actix_session::SessionStatus[][src]

pub enum SessionStatus {
+SessionStatus in actix_session - Rust

Enum actix_session::SessionStatus[][src]

pub enum SessionStatus {
     Changed,
     Purged,
     Renewed,
@@ -15,22 +15,22 @@ be notified of the refresh.

This state also captures new (previously unissued) sessions such as a user’s first site visit.

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

+

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

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

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

-

This method tests for !=.

+

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

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The resulting type after obtaining ownership.

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

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

recently added

@@ -39,6 +39,10 @@ by ==.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_session/index.html b/actix_session/index.html index 076dadf36..d9f06f681 100644 --- a/actix_session/index.html +++ b/actix_session/index.html @@ -10,7 +10,7 @@ modifying session data.

use actix_web::{web, App, HttpServer, HttpResponse, Error};
 use actix_session::{Session, CookieSession};
 
-fn index(session: Session) -> Result<&'static str, Error> {
+fn index(session: Session) -> Result<&'static str, Error> {
     // access session data
     if let Some(count) = session.get::<i32>("counter")? {
         println!("SESSION value: {}", count);
@@ -23,7 +23,7 @@ modifying session data.

} #[actix_rt::main] -async fn main() -> std::io::Result<()> { +async fn main() -> std::io::Result<()> { HttpServer::new( || App::new() // create cookie based session middleware @@ -34,12 +34,12 @@ modifying session data.

.await }

Structs

-

Use cookies for session storage.

-

The high-level interface you use to modify session data.

-

Enums

-

Status of a Session.

-

Traits

-

Extraction of a Session object.

-
+

Use cookies for session storage.

+

The high-level interface you use to modify session data.

+

Enums

+

Status of a Session.

+

Traits

+

Extraction of a Session object.

+
\ No newline at end of file diff --git a/actix_session/struct.CookieSession.html b/actix_session/struct.CookieSession.html index 6c70f1b03..6dfb89de4 100644 --- a/actix_session/struct.CookieSession.html +++ b/actix_session/struct.CookieSession.html @@ -1,4 +1,4 @@ -CookieSession in actix_session - Rust

Struct actix_session::CookieSession[][src]

pub struct CookieSession(_);
Expand description

Use cookies for session storage.

+CookieSession in actix_session - Rust

Struct actix_session::CookieSession[][src]

pub struct CookieSession(_);
Expand description

Use cookies for session storage.

CookieSession creates sessions which are limited to storing fewer than 4000 bytes of data (as the payload must fit into a single cookie). An Internal Server Error is generated if the session contains more @@ -17,7 +17,7 @@ than 32 bytes in length.

The backend relies on cookie crate to create and read cookies. By default all cookies are percent encoded, but certain symbols may cause troubles when reading cookie, if they are not properly percent encoded.

-

Examples

+

Examples

use actix_session::CookieSession;
 use actix_web::{web, App, HttpResponse, HttpServer};
 
@@ -57,16 +57,20 @@ connection is secure - i.e. https

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

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

+

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

+
\ No newline at end of file diff --git a/actix_session/struct.Session.html b/actix_session/struct.Session.html index 2fa48de8c..6b1831358 100644 --- a/actix_session/struct.Session.html +++ b/actix_session/struct.Session.html @@ -1,11 +1,11 @@ -Session in actix_session - Rust

Struct actix_session::Session[][src]

pub struct Session(_);
Expand description

The high-level interface you use to modify session data.

+Session in actix_session - Rust

Struct actix_session::Session[][src]

pub struct Session(_);
Expand description

The high-level interface you use to modify session data.

Session object is obtained with UserSession::get_session. The UserSession trait is implemented for HttpRequest, ServiceRequest, and RequestHead.

use actix_session::Session;
 use actix_web::Result;
 
-async fn index(session: Session) -> Result<&'static str> {
+async fn index(session: Session) -> Result<&'static str> {
     // access session data
     if let Some(count) = session.get::<i32>("counter")? {
         session.insert("counter", count + 1)?;
@@ -32,7 +32,7 @@ otherwise returns un-deserialized JSON string.

Adds the given key-value pairs to the session on the request.

Values that match keys already existing on the session will be overwritten. Values should already be JSON serialized.

-

Examples

+
Examples
let mut req = test::TestRequest::default().to_srv_request();
 
 Session::set_session(
@@ -41,11 +41,11 @@ already be JSON serialized.

);

Returns session status and iterator of key-value pairs of changes.

Trait Implementations

Extractor implementation for Session type.

-

Examples

+

Examples

use actix_session::Session;
 
 #[get("/")]
-async fn index(session: Session) -> Result<impl Responder> {
+async fn index(session: Session) -> Result<impl Responder> {
     // access session data
     if let Some(count) = session.get::<i32>("counter")? {
         session.insert("counter", count + 1)?;
@@ -66,16 +66,20 @@ already be JSON serialized.

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

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

+

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

+
\ No newline at end of file diff --git a/actix_session/trait.UserSession.html b/actix_session/trait.UserSession.html index 08611f5b1..f6566a7b3 100644 --- a/actix_session/trait.UserSession.html +++ b/actix_session/trait.UserSession.html @@ -2,6 +2,6 @@ fn get_session(&self) -> Session; }
Expand description

Extraction of a Session object.

Required methods

Extract the Session object

-

Implementations on Foreign Types

Implementors

+

Implementations on Foreign Types

Implementors

\ No newline at end of file diff --git a/actix_web_httpauth/extractors/basic/index.html b/actix_web_httpauth/extractors/basic/index.html index 1c5f96bd0..a1e38a9d8 100644 --- a/actix_web_httpauth/extractors/basic/index.html +++ b/actix_web_httpauth/extractors/basic/index.html @@ -1,8 +1,8 @@ actix_web_httpauth::extractors::basic - Rust

Module actix_web_httpauth::extractors::basic[][src]

Expand description

Extractor for the “Basic” HTTP Authentication Scheme

Structs

-

Extractor for HTTP Basic auth.

-

BasicAuth extractor configuration, +

Extractor for HTTP Basic auth.

+

BasicAuth extractor configuration, used for WWW-Authenticate header later.

-
+
\ No newline at end of file diff --git a/actix_web_httpauth/extractors/basic/struct.BasicAuth.html b/actix_web_httpauth/extractors/basic/struct.BasicAuth.html index 31833e94e..c8d718255 100644 --- a/actix_web_httpauth/extractors/basic/struct.BasicAuth.html +++ b/actix_web_httpauth/extractors/basic/struct.BasicAuth.html @@ -1,19 +1,19 @@ -BasicAuth in actix_web_httpauth::extractors::basic - Rust

Struct actix_web_httpauth::extractors::basic::BasicAuth[][src]

pub struct BasicAuth(_);
Expand description

Extractor for HTTP Basic auth.

-

Example

+BasicAuth in actix_web_httpauth::extractors::basic - Rust

Struct actix_web_httpauth::extractors::basic::BasicAuth[][src]

pub struct BasicAuth(_);
Expand description

Extractor for HTTP Basic auth.

+

Example

use actix_web::Result;
 use actix_web_httpauth::extractors::basic::BasicAuth;
 
-async fn index(auth: BasicAuth) -> String {
+async fn index(auth: BasicAuth) -> String {
     format!("Hello, {}!", auth.user_id())
 }

If authentication fails, this extractor fetches the Config instance from the app data in order to properly form the WWW-Authenticate response header.

-

Example

+

Example

use actix_web::{web, App};
 use actix_web_httpauth::extractors::basic::{BasicAuth, Config};
 
-async fn index(auth: BasicAuth) -> String {
+async fn index(auth: BasicAuth) -> String {
     format!("Hello, {}!", auth.user_id())
 }
 
@@ -28,7 +28,7 @@ response header.

Future that resolves into extracted credentials type.

Parse the authentication credentials from the actix’ ServiceRequest.

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

+

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Future that resolves to a Self.

Configuration for this extractor.

@@ -40,12 +40,12 @@ response header.

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The resulting type after obtaining ownership.

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

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

recently added

@@ -54,6 +54,10 @@ response header.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_web_httpauth/extractors/basic/struct.Config.html b/actix_web_httpauth/extractors/basic/struct.Config.html index 027ee2f75..3c2542c9f 100644 --- a/actix_web_httpauth/extractors/basic/struct.Config.html +++ b/actix_web_httpauth/extractors/basic/struct.Config.html @@ -1,4 +1,4 @@ -Config in actix_web_httpauth::extractors::basic - Rust

Struct actix_web_httpauth::extractors::basic::Config[][src]

pub struct Config(_);
Expand description

BasicAuth extractor configuration, +Config in actix_web_httpauth::extractors::basic - Rust

Struct actix_web_httpauth::extractors::basic::Config[][src]

pub struct Config(_);
Expand description

BasicAuth extractor configuration, used for WWW-Authenticate header later.

Implementations

Set challenge realm attribute.

The “realm” attribute indicates the scope of protection in the manner @@ -7,19 +7,19 @@ described in HTTP/1.1

Associated challenge type.

Convert the config instance into a HTTP challenge.

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

+

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

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

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The resulting type after obtaining ownership.

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

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

recently added

@@ -28,6 +28,10 @@ described in HTTP/1.1

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_web_httpauth/extractors/bearer/enum.Error.html b/actix_web_httpauth/extractors/bearer/enum.Error.html index 82ddecaa2..1e84f01e1 100644 --- a/actix_web_httpauth/extractors/bearer/enum.Error.html +++ b/actix_web_httpauth/extractors/bearer/enum.Error.html @@ -1,4 +1,4 @@ -Error in actix_web_httpauth::extractors::bearer - Rust

Enum actix_web_httpauth::extractors::bearer::Error[][src]

pub enum Error {
+Error in actix_web_httpauth::extractors::bearer - Rust

Enum actix_web_httpauth::extractors::bearer::Error[][src]

pub enum Error {
     InvalidRequest,
     InvalidToken,
     InsufficientScope,
@@ -11,38 +11,38 @@ malformed.

for other reasons.

InsufficientScope

The request requires higher privileges than provided by the access token.

-

Implementations

Returns HTTP status code suitable for current error type.

+

Implementations

Returns HTTP status code suitable for current error type.

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

+

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

Feeds this value into the given Hasher. Read more

-

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

+

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

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

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

-

This method tests for !=.

+

This method tests for !=.

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

Auto Trait Implementations

Blanket 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.

+

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

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The resulting type after obtaining ownership.

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

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

recently added

@@ -52,6 +52,10 @@ operator.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_web_httpauth/extractors/bearer/index.html b/actix_web_httpauth/extractors/bearer/index.html index b06b57f73..48ab4ee6d 100644 --- a/actix_web_httpauth/extractors/bearer/index.html +++ b/actix_web_httpauth/extractors/bearer/index.html @@ -1,9 +1,9 @@ actix_web_httpauth::extractors::bearer - Rust

Module actix_web_httpauth::extractors::bearer[][src]

Expand description

Extractor for the “Bearer” HTTP Authentication Scheme

Structs

-

Extractor for HTTP Bearer auth

-

BearerAuth extractor configuration.

-

Enums

-

Bearer authorization error types, described in RFC 6750

-
+

Extractor for HTTP Bearer auth

+

BearerAuth extractor configuration.

+

Enums

+

Bearer authorization error types, described in RFC 6750

+
\ No newline at end of file diff --git a/actix_web_httpauth/extractors/bearer/struct.BearerAuth.html b/actix_web_httpauth/extractors/bearer/struct.BearerAuth.html index 58af63fa1..6cc0f0120 100644 --- a/actix_web_httpauth/extractors/bearer/struct.BearerAuth.html +++ b/actix_web_httpauth/extractors/bearer/struct.BearerAuth.html @@ -1,18 +1,18 @@ -BearerAuth in actix_web_httpauth::extractors::bearer - Rust

Struct actix_web_httpauth::extractors::bearer::BearerAuth[][src]

pub struct BearerAuth(_);
Expand description

Extractor for HTTP Bearer auth

-

Example

+BearerAuth in actix_web_httpauth::extractors::bearer - Rust

Struct actix_web_httpauth::extractors::bearer::BearerAuth[][src]

pub struct BearerAuth(_);
Expand description

Extractor for HTTP Bearer auth

+

Example

use actix_web_httpauth::extractors::bearer::BearerAuth;
 
-async fn index(auth: BearerAuth) -> String {
+async fn index(auth: BearerAuth) -> String {
     format!("Hello, user with token {}!", auth.token())
 }

If authentication fails, this extractor fetches the Config instance from the [app data] in order to properly form the WWW-Authenticate response header.

-

Example

+

Example

use actix_web::{web, App};
 use actix_web_httpauth::extractors::bearer::{BearerAuth, Config};
 
-async fn index(auth: BearerAuth) -> String {
+async fn index(auth: BearerAuth) -> String {
     format!("Hello, {}!", auth.token())
 }
 
@@ -30,7 +30,7 @@ response header.

The associated error which can be returned.

Parse the authentication credentials from the actix’ ServiceRequest.

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

+

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Configuration for this extractor.

Future that resolves to a Self.

@@ -42,12 +42,12 @@ response header.

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The resulting type after obtaining ownership.

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

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

recently added

@@ -56,6 +56,10 @@ response header.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_web_httpauth/extractors/bearer/struct.Config.html b/actix_web_httpauth/extractors/bearer/struct.Config.html index c8b6b0bdf..6c66f4513 100644 --- a/actix_web_httpauth/extractors/bearer/struct.Config.html +++ b/actix_web_httpauth/extractors/bearer/struct.Config.html @@ -1,4 +1,4 @@ -Config in actix_web_httpauth::extractors::bearer - Rust

Struct actix_web_httpauth::extractors::bearer::Config[][src]

pub struct Config(_);
Expand description

BearerAuth extractor configuration.

+Config in actix_web_httpauth::extractors::bearer - Rust

Struct actix_web_httpauth::extractors::bearer::Config[][src]

pub struct Config(_);
Expand description

BearerAuth extractor configuration.

Implementations

Set challenge scope attribute.

The "scope" attribute is a space-delimited list of case-sensitive scope values indicating the required scope of the access token for @@ -10,19 +10,19 @@ described in HTTP/1.1

Associated challenge type.

Convert the config instance into a HTTP challenge.

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

+

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

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

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The resulting type after obtaining ownership.

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

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

recently added

@@ -31,6 +31,10 @@ described in HTTP/1.1

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_web_httpauth/extractors/index.html b/actix_web_httpauth/extractors/index.html index 685e586e8..50cff7386 100644 --- a/actix_web_httpauth/extractors/index.html +++ b/actix_web_httpauth/extractors/index.html @@ -1,14 +1,14 @@ actix_web_httpauth::extractors - Rust

Module actix_web_httpauth::extractors[][src]

Expand description

Type-safe authentication information extractors

Modules

-

Extractor for the “Basic” HTTP Authentication Scheme

-

Extractor for the “Bearer” HTTP Authentication Scheme

-

Structs

-

Authentication error returned by authentication extractors.

-

Traits

-

Trait implemented by types that can extract +

Extractor for the “Basic” HTTP Authentication Scheme

+

Extractor for the “Bearer” HTTP Authentication Scheme

+

Structs

+

Authentication error returned by authentication extractors.

+

Traits

+

Trait implemented by types that can extract HTTP authentication scheme credentials from the request.

-

Trait implemented for types that provides configuration +

Trait implemented for types that provides configuration for the authentication extractors.

-
+
\ No newline at end of file diff --git a/actix_web_httpauth/extractors/struct.AuthenticationError.html b/actix_web_httpauth/extractors/struct.AuthenticationError.html index 4fc393fd6..6f9e8d422 100644 --- a/actix_web_httpauth/extractors/struct.AuthenticationError.html +++ b/actix_web_httpauth/extractors/struct.AuthenticationError.html @@ -1,4 +1,4 @@ -AuthenticationError in actix_web_httpauth::extractors - Rust

Struct actix_web_httpauth::extractors::AuthenticationError[][src]

pub struct AuthenticationError<C: Challenge> { /* fields omitted */ }
Expand description

Authentication error returned by authentication extractors.

+AuthenticationError in actix_web_httpauth::extractors - Rust

Struct actix_web_httpauth::extractors::AuthenticationError[][src]

pub struct AuthenticationError<C: Challenge> { /* fields omitted */ }
Expand description

Authentication error returned by authentication extractors.

Different extractors may extend AuthenticationError implementation in order to provide access to inner challenge fields.

Implementations

Extended error customization for HTTP Bearer auth.

@@ -11,33 +11,37 @@ Error.

Creates new authentication error from the provided challenge.

By default returned error will resolve into the HTTP 401 status code.

Returns mutable reference to the inner challenge instance.

-

Returns mutable reference to the inner status code.

+

Returns mutable reference to the inner status code.

Can be used to override returned status code, but by default this lib tries to stick to the RFC, so it might be unreasonable.

Trait Implementations

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

-

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

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

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

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

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

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

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

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Performs the conversion.

Creates full response for error. Read more

-

Returns appropriate status code for error. Read more

+

Returns appropriate status code for error. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

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

+

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

+
\ No newline at end of file diff --git a/actix_web_httpauth/extractors/trait.AuthExtractor.html b/actix_web_httpauth/extractors/trait.AuthExtractor.html index 7df25ea43..84d034e66 100644 --- a/actix_web_httpauth/extractors/trait.AuthExtractor.html +++ b/actix_web_httpauth/extractors/trait.AuthExtractor.html @@ -12,6 +12,6 @@ authentication scheme.

Associated Types

The associated error which can be returned.

Future that resolves into extracted credentials type.

Required methods

Parse the authentication credentials from the actix’ ServiceRequest.

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/actix_web_httpauth/extractors/trait.AuthExtractorConfig.html b/actix_web_httpauth/extractors/trait.AuthExtractorConfig.html index 4ec1f84c4..82ab403ee 100644 --- a/actix_web_httpauth/extractors/trait.AuthExtractorConfig.html +++ b/actix_web_httpauth/extractors/trait.AuthExtractorConfig.html @@ -5,6 +5,6 @@ for the authentication extractors.

Associated Types

Associated challenge type.

Required methods

Convert the config instance into a HTTP challenge.

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/actix_web_httpauth/headers/authorization/enum.ParseError.html b/actix_web_httpauth/headers/authorization/enum.ParseError.html index 4cab3a352..af218268d 100644 --- a/actix_web_httpauth/headers/authorization/enum.ParseError.html +++ b/actix_web_httpauth/headers/authorization/enum.ParseError.html @@ -1,8 +1,8 @@ -ParseError in actix_web_httpauth::headers::authorization - Rust

Enum actix_web_httpauth::headers::authorization::ParseError[][src]

pub enum ParseError {
+ParseError in actix_web_httpauth::headers::authorization - Rust

Enum actix_web_httpauth::headers::authorization::ParseError[][src]

pub enum ParseError {
     Invalid,
     MissingScheme,
     MissingField(&'static str),
-    ToStrError(ToStrError),
+    ToStrError(ToStrError),
     Base64DecodeError(DecodeError),
     Utf8Error(Utf8Error),
 }
Expand description

Possible errors while parsing Authorization header.

@@ -10,34 +10,38 @@ your own authentication scheme.

Variants

Invalid

Header value is malformed

MissingScheme

Authentication scheme is missing

-
MissingField

Required authentication field is missing

-

Tuple Fields of MissingField

0: &'static str
ToStrError

Unable to convert header into the str

-

Tuple Fields of ToStrError

Base64DecodeError

Malformed base64 string

-

Tuple Fields of Base64DecodeError

0: DecodeError
Utf8Error

Malformed UTF-8 string

+
MissingField(&'static str)

Required authentication field is missing

+

Tuple Fields of MissingField

0: &'static str
ToStrError(ToStrError)

Unable to convert header into the str

+

Tuple Fields of ToStrError

Base64DecodeError(DecodeError)

Malformed base64 string

+

Tuple Fields of Base64DecodeError

0: DecodeError
Utf8Error(Utf8Error)

Malformed UTF-8 string

Tuple Fields of Utf8Error

Trait Implementations

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

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

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

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

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

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

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

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Performs the conversion.

-

Performs the conversion.

+

Performs the conversion.

Performs the conversion.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

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

+

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

+
\ No newline at end of file diff --git a/actix_web_httpauth/headers/authorization/index.html b/actix_web_httpauth/headers/authorization/index.html index 28dee0934..b26899c22 100644 --- a/actix_web_httpauth/headers/authorization/index.html +++ b/actix_web_httpauth/headers/authorization/index.html @@ -1,13 +1,13 @@ actix_web_httpauth::headers::authorization - Rust

Module actix_web_httpauth::headers::authorization[][src]

Expand description

Authorization header and various auth schemes

Structs

-

Authorization header, defined in RFC 7235

-

Credentials for Basic authentication scheme, defined in RFC 7617

-

Credentials for Bearer authentication scheme, defined in RFC6750

-

Enums

-

Possible errors while parsing Authorization header.

-

Traits

-

Authentication scheme for Authorization +

Authorization header, defined in RFC 7235

+

Credentials for Basic authentication scheme, defined in RFC 7617

+

Credentials for Bearer authentication scheme, defined in RFC6750

+

Enums

+

Possible errors while parsing Authorization header.

+

Traits

+

Authentication scheme for Authorization header.

-
+
\ No newline at end of file diff --git a/actix_web_httpauth/headers/authorization/struct.Authorization.html b/actix_web_httpauth/headers/authorization/struct.Authorization.html index a18d7ace2..d4d610172 100644 --- a/actix_web_httpauth/headers/authorization/struct.Authorization.html +++ b/actix_web_httpauth/headers/authorization/struct.Authorization.html @@ -1,4 +1,4 @@ -Authorization in actix_web_httpauth::headers::authorization - Rust

Struct actix_web_httpauth::headers::authorization::Authorization[][src]

pub struct Authorization<S: Scheme>(_);
Expand description

Authorization header, defined in RFC 7235

+Authorization in actix_web_httpauth::headers::authorization - Rust

Struct actix_web_httpauth::headers::authorization::Authorization[][src]

pub struct Authorization<S: Scheme>(_);
Expand description

Authorization header, defined in RFC 7235

The “Authorization” header field allows a user agent to authenticate itself with an origin server – usually, but not necessarily, after receiving a 401 (Unauthorized) response. Its value consists of @@ -6,8 +6,8 @@ credentials containing the authentication information of the user agent for the realm of the resource being requested.

Authorization header is generic over authentication scheme.

-

Example

-
fn handler(req: HttpRequest) -> Result<String> {
+

Example

+
fn handler(req: HttpRequest) -> Result<String> {
     let auth = Authorization::<Basic>::parse(&req)?;
 
     Ok(format!("Hello, {}!", auth.as_ref().user_id()))
@@ -17,43 +17,43 @@ implementation.

Trait Implementations

Performs the conversion.

Performs the conversion.

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

+

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

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

Formats the value using the given formatter. Read more

Performs the conversion.

Feeds this value into the given Hasher. Read more

-

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

-

Returns the name of the header field

+

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

+

Returns the name of the header field

Parse a header

The type returned in the event of a conversion error.

-

Try to convert value to a HeaderValue.

+

Try to convert value to a HeaderValue.

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

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

This method tests for !=.

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

Auto Trait Implementations

Blanket 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.

+

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

Performs the conversion.

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The resulting type after obtaining ownership.

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

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

recently added

@@ -63,6 +63,10 @@ operator.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_web_httpauth/headers/authorization/struct.Basic.html b/actix_web_httpauth/headers/authorization/struct.Basic.html index d793bd160..454913051 100644 --- a/actix_web_httpauth/headers/authorization/struct.Basic.html +++ b/actix_web_httpauth/headers/authorization/struct.Basic.html @@ -1,42 +1,42 @@ -Basic in actix_web_httpauth::headers::authorization - Rust

Struct actix_web_httpauth::headers::authorization::Basic[][src]

pub struct Basic { /* fields omitted */ }
Expand description

Credentials for Basic authentication scheme, defined in RFC 7617

+Basic in actix_web_httpauth::headers::authorization - Rust

Struct actix_web_httpauth::headers::authorization::Basic[][src]

pub struct Basic { /* fields omitted */ }
Expand description

Credentials for Basic authentication scheme, defined in RFC 7617

Implementations

Creates Basic credentials with provided user_id and optional password.

-

Example

+
Example
let credentials = Basic::new("Alladin", Some("open sesame"));

Returns client’s user-ID.

Returns client’s password if provided.

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

+

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

-

The type returned in the event of a conversion error.

-

Try to convert value to a HeaderValue.

+

The type returned in the event of a conversion error.

+

Try to convert value to a HeaderValue.

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

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

This method tests for !=.

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

-

Try to parse the authentication scheme from the Authorization header.

+

Try to parse the authentication scheme from the Authorization header.

Auto Trait Implementations

Blanket 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.

+

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

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The resulting type after obtaining ownership.

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

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

recently added

@@ -46,6 +46,10 @@ operator.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_web_httpauth/headers/authorization/struct.Bearer.html b/actix_web_httpauth/headers/authorization/struct.Bearer.html index 2fa4ef736..0c3010e4c 100644 --- a/actix_web_httpauth/headers/authorization/struct.Bearer.html +++ b/actix_web_httpauth/headers/authorization/struct.Bearer.html @@ -1,42 +1,42 @@ -Bearer in actix_web_httpauth::headers::authorization - Rust

Struct actix_web_httpauth::headers::authorization::Bearer[][src]

pub struct Bearer { /* fields omitted */ }
Expand description

Credentials for Bearer authentication scheme, defined in RFC6750

+Bearer in actix_web_httpauth::headers::authorization - Rust

Struct actix_web_httpauth::headers::authorization::Bearer[][src]

pub struct Bearer { /* fields omitted */ }
Expand description

Credentials for Bearer authentication scheme, defined in RFC6750

Should be used in combination with Authorization header.

Implementations

Creates new Bearer credentials with the token provided.

-

Example

+
Example
let credentials = Bearer::new("mF_9.B5f-4.1JqM");

Gets reference to the credentials token.

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

+

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

-

The type returned in the event of a conversion error.

-

Try to convert value to a HeaderValue.

+

The type returned in the event of a conversion error.

+

Try to convert value to a HeaderValue.

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

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

This method tests for !=.

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

-

Try to parse the authentication scheme from the Authorization header.

+

Try to parse the authentication scheme from the Authorization header.

Auto Trait Implementations

Blanket 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.

+

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

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The resulting type after obtaining ownership.

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

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

recently added

@@ -46,6 +46,10 @@ operator.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_web_httpauth/headers/authorization/trait.Scheme.html b/actix_web_httpauth/headers/authorization/trait.Scheme.html index df63540dc..b40f44d93 100644 --- a/actix_web_httpauth/headers/authorization/trait.Scheme.html +++ b/actix_web_httpauth/headers/authorization/trait.Scheme.html @@ -1,8 +1,8 @@ Scheme in actix_web_httpauth::headers::authorization - Rust

Trait actix_web_httpauth::headers::authorization::Scheme[][src]

pub trait Scheme: IntoHeaderValue + Debug + Display + Clone + Send + Sync {
-    fn parse(header: &HeaderValue) -> Result<Self, ParseError>;
+    fn parse(header: &HeaderValue) -> Result<Self, ParseError>;
 }
Expand description

Authentication scheme for Authorization header.

-

Required methods

Try to parse the authentication scheme from the Authorization header.

+

Required methods

Try to parse the authentication scheme from the Authorization header.

Implementors

\ No newline at end of file diff --git a/actix_web_httpauth/headers/index.html b/actix_web_httpauth/headers/index.html index 681e379d0..160fa7a79 100644 --- a/actix_web_httpauth/headers/index.html +++ b/actix_web_httpauth/headers/index.html @@ -1,7 +1,7 @@ actix_web_httpauth::headers - Rust

Module actix_web_httpauth::headers[][src]

Expand description

Typed HTTP headers

Modules

-

Authorization header and various auth schemes

-

WWW-Authenticate header and various auth challenges

-
+

Authorization header and various auth schemes

+

WWW-Authenticate header and various auth challenges

+
\ No newline at end of file diff --git a/actix_web_httpauth/headers/www_authenticate/basic/index.html b/actix_web_httpauth/headers/www_authenticate/basic/index.html index ce9dc19c9..ab8ad577f 100644 --- a/actix_web_httpauth/headers/www_authenticate/basic/index.html +++ b/actix_web_httpauth/headers/www_authenticate/basic/index.html @@ -1,7 +1,7 @@ actix_web_httpauth::headers::www_authenticate::basic - Rust

Module actix_web_httpauth::headers::www_authenticate::basic[][src]

Expand description

Challenge for the “Basic” HTTP Authentication Scheme

Structs

-

Challenge for WWW-Authenticate header with HTTP Basic auth scheme, +

Challenge for WWW-Authenticate header with HTTP Basic auth scheme, described in RFC 7617

-
+
\ No newline at end of file diff --git a/actix_web_httpauth/headers/www_authenticate/basic/struct.Basic.html b/actix_web_httpauth/headers/www_authenticate/basic/struct.Basic.html index 156674c0c..95105b363 100644 --- a/actix_web_httpauth/headers/www_authenticate/basic/struct.Basic.html +++ b/actix_web_httpauth/headers/www_authenticate/basic/struct.Basic.html @@ -1,10 +1,10 @@ -Basic in actix_web_httpauth::headers::www_authenticate::basic - Rust

Struct actix_web_httpauth::headers::www_authenticate::basic::Basic[][src]

pub struct Basic { /* fields omitted */ }
Expand description

Challenge for WWW-Authenticate header with HTTP Basic auth scheme, +Basic in actix_web_httpauth::headers::www_authenticate::basic - Rust

Struct actix_web_httpauth::headers::www_authenticate::basic::Basic[][src]

pub struct Basic { /* fields omitted */ }
Expand description

Challenge for WWW-Authenticate header with HTTP Basic auth scheme, described in RFC 7617

-

Example

+

Example

use actix_web_httpauth::headers::www_authenticate::basic::Basic;
 use actix_web_httpauth::headers::www_authenticate::WwwAuthenticate;
 
-fn index(_req: HttpRequest) -> HttpResponse {
+fn index(_req: HttpRequest) -> HttpResponse {
     let challenge = Basic::with_realm("Restricted area");
 
     HttpResponse::Unauthorized()
@@ -12,49 +12,49 @@ described in RFC 7617

.finish() }

Implementations

Creates new Basic challenge with an empty realm field.

-

Example

+
Example
let challenge = Basic::new();

Creates new Basic challenge from the provided realm field value.

-

Examples

+
Examples
let challenge = Basic::with_realm("Restricted area");
let my_realm = "Earth realm".to_string();
 let challenge = Basic::with_realm(my_realm);

Trait Implementations

Performs the conversion.

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

+

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

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

Formats the value using the given formatter. Read more

Feeds this value into the given Hasher. Read more

-

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

-

The type returned in the event of a conversion error.

-

Try to convert value to a HeaderValue.

+

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

+

The type returned in the event of a conversion error.

+

Try to convert value to a HeaderValue.

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

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

This method tests for !=.

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

Auto Trait Implementations

Blanket 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.

+

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

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The resulting type after obtaining ownership.

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

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

recently added

@@ -64,6 +64,10 @@ operator.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_web_httpauth/headers/www_authenticate/bearer/enum.Error.html b/actix_web_httpauth/headers/www_authenticate/bearer/enum.Error.html index 362340aa2..0b8025d00 100644 --- a/actix_web_httpauth/headers/www_authenticate/bearer/enum.Error.html +++ b/actix_web_httpauth/headers/www_authenticate/bearer/enum.Error.html @@ -1,4 +1,4 @@ -Error in actix_web_httpauth::headers::www_authenticate::bearer - Rust

Enum actix_web_httpauth::headers::www_authenticate::bearer::Error[][src]

pub enum Error {
+Error in actix_web_httpauth::headers::www_authenticate::bearer - Rust

Enum actix_web_httpauth::headers::www_authenticate::bearer::Error[][src]

pub enum Error {
     InvalidRequest,
     InvalidToken,
     InsufficientScope,
@@ -11,38 +11,38 @@ malformed.

for other reasons.

InsufficientScope

The request requires higher privileges than provided by the access token.

-

Implementations

Returns HTTP status code suitable for current error type.

+

Implementations

Returns HTTP status code suitable for current error type.

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

+

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

Feeds this value into the given Hasher. Read more

-

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

+

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

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

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

-

This method tests for !=.

+

This method tests for !=.

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

Auto Trait Implementations

Blanket 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.

+

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

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The resulting type after obtaining ownership.

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

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

recently added

@@ -52,6 +52,10 @@ operator.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_web_httpauth/headers/www_authenticate/bearer/index.html b/actix_web_httpauth/headers/www_authenticate/bearer/index.html index e96fa3235..d2982cdd8 100644 --- a/actix_web_httpauth/headers/www_authenticate/bearer/index.html +++ b/actix_web_httpauth/headers/www_authenticate/bearer/index.html @@ -1,10 +1,10 @@ actix_web_httpauth::headers::www_authenticate::bearer - Rust

Module actix_web_httpauth::headers::www_authenticate::bearer[][src]

Expand description

Challenge for the “Bearer” HTTP Authentication Scheme

Structs

-

Challenge for WWW-Authenticate header with HTTP Bearer auth scheme, +

Challenge for WWW-Authenticate header with HTTP Bearer auth scheme, described in RFC 6750

-

Builder for the Bearer challenge.

-

Enums

-

Bearer authorization error types, described in RFC 6750

-
+

Builder for the Bearer challenge.

+

Enums

+

Bearer authorization error types, described in RFC 6750

+
\ No newline at end of file diff --git a/actix_web_httpauth/headers/www_authenticate/bearer/struct.Bearer.html b/actix_web_httpauth/headers/www_authenticate/bearer/struct.Bearer.html index 9349011c6..0952c6da3 100644 --- a/actix_web_httpauth/headers/www_authenticate/bearer/struct.Bearer.html +++ b/actix_web_httpauth/headers/www_authenticate/bearer/struct.Bearer.html @@ -1,12 +1,12 @@ -Bearer in actix_web_httpauth::headers::www_authenticate::bearer - Rust

Struct actix_web_httpauth::headers::www_authenticate::bearer::Bearer[][src]

pub struct Bearer { /* fields omitted */ }
Expand description

Challenge for WWW-Authenticate header with HTTP Bearer auth scheme, +Bearer in actix_web_httpauth::headers::www_authenticate::bearer - Rust

Struct actix_web_httpauth::headers::www_authenticate::bearer::Bearer[][src]

pub struct Bearer { /* fields omitted */ }
Expand description

Challenge for WWW-Authenticate header with HTTP Bearer auth scheme, described in RFC 6750

-

Example

+

Example

use actix_web_httpauth::headers::www_authenticate::bearer::{
     Bearer, Error,
 };
 use actix_web_httpauth::headers::www_authenticate::WwwAuthenticate;
 
-fn index(_req: HttpRequest) -> HttpResponse {
+fn index(_req: HttpRequest) -> HttpResponse {
     let challenge = Bearer::build()
         .realm("example")
         .scope("openid profile email")
@@ -20,46 +20,46 @@ described in RFC 6750finish()
 }

Implementations

Creates the builder for Bearer challenge.

-

Example

+
Example
let challenge = Bearer::build()
     .realm("Restricted area")
     .scope("openid profile email")
     .finish();

Trait Implementations

Performs the conversion.

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

+

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

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

Formats the value using the given formatter. Read more

Feeds this value into the given Hasher. Read more

-

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

-

The type returned in the event of a conversion error.

-

Try to convert value to a HeaderValue.

+

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

+

The type returned in the event of a conversion error.

+

Try to convert value to a HeaderValue.

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

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

This method tests for !=.

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

Auto Trait Implementations

Blanket 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.

+

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

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The resulting type after obtaining ownership.

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

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

recently added

@@ -69,6 +69,10 @@ operator.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_web_httpauth/headers/www_authenticate/bearer/struct.BearerBuilder.html b/actix_web_httpauth/headers/www_authenticate/bearer/struct.BearerBuilder.html index eafca7292..204cc7ec6 100644 --- a/actix_web_httpauth/headers/www_authenticate/bearer/struct.BearerBuilder.html +++ b/actix_web_httpauth/headers/www_authenticate/bearer/struct.BearerBuilder.html @@ -1,4 +1,4 @@ -BearerBuilder in actix_web_httpauth::headers::www_authenticate::bearer - Rust

Struct actix_web_httpauth::headers::www_authenticate::bearer::BearerBuilder[][src]

pub struct BearerBuilder(_);
Expand description

Builder for the Bearer challenge.

+BearerBuilder in actix_web_httpauth::headers::www_authenticate::bearer - Rust

Struct actix_web_httpauth::headers::www_authenticate::bearer::BearerBuilder[][src]

pub struct BearerBuilder(_);
Expand description

Builder for the Bearer challenge.

It is up to implementor to fill all required fields, neither this Builder or Bearer does not provide any validation.

Implementations

Provides the scope attribute, as defined in RFC6749, Section 3.3

@@ -14,16 +14,20 @@ neither this Builder or Bearer

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

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

+

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

+
\ No newline at end of file diff --git a/actix_web_httpauth/headers/www_authenticate/index.html b/actix_web_httpauth/headers/www_authenticate/index.html index 100c7eaec..f0d7e2a19 100644 --- a/actix_web_httpauth/headers/www_authenticate/index.html +++ b/actix_web_httpauth/headers/www_authenticate/index.html @@ -1,11 +1,11 @@ actix_web_httpauth::headers::www_authenticate - Rust

Module actix_web_httpauth::headers::www_authenticate[][src]

Expand description

WWW-Authenticate header and various auth challenges

Modules

-

Challenge for the “Basic” HTTP Authentication Scheme

-

Challenge for the “Bearer” HTTP Authentication Scheme

-

Structs

-

WWW-Authenticate header, described in RFC 7235

-

Traits

-

Authentication challenge for WWW-Authenticate header.

-
+

Challenge for the “Basic” HTTP Authentication Scheme

+

Challenge for the “Bearer” HTTP Authentication Scheme

+

Structs

+

WWW-Authenticate header, described in RFC 7235

+

Traits

+

Authentication challenge for WWW-Authenticate header.

+
\ No newline at end of file diff --git a/actix_web_httpauth/headers/www_authenticate/struct.WwwAuthenticate.html b/actix_web_httpauth/headers/www_authenticate/struct.WwwAuthenticate.html index 859d735a1..b9cff3766 100644 --- a/actix_web_httpauth/headers/www_authenticate/struct.WwwAuthenticate.html +++ b/actix_web_httpauth/headers/www_authenticate/struct.WwwAuthenticate.html @@ -1,42 +1,42 @@ -WwwAuthenticate in actix_web_httpauth::headers::www_authenticate - Rust

Struct actix_web_httpauth::headers::www_authenticate::WwwAuthenticate[][src]

pub struct WwwAuthenticate<C: Challenge>(pub C);
Expand description

WWW-Authenticate header, described in RFC 7235

+WwwAuthenticate in actix_web_httpauth::headers::www_authenticate - Rust

Struct actix_web_httpauth::headers::www_authenticate::WwwAuthenticate[][src]

pub struct WwwAuthenticate<C: Challenge>(pub C);
Expand description

WWW-Authenticate header, described in RFC 7235

This header is generic over Challenge trait, see Basic and Bearer challenges for details.

Tuple Fields

0: C

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

+

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

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

Feeds this value into the given Hasher. Read more

-

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

-

Returns the name of the header field

+

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

+

Returns the name of the header field

Parse a header

The type returned in the event of a conversion error.

-

Try to convert value to a HeaderValue.

+

Try to convert value to a HeaderValue.

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

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

This method tests for !=.

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

Auto Trait Implementations

Blanket 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.

+

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

Performs the conversion.

-

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

-

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

+

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

+

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

Performs the conversion.

-

Should always be Self

+

Should always be Self

The resulting type after obtaining ownership.

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

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

recently added

@@ -45,6 +45,10 @@ operator.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read 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_web_httpauth/index.html b/actix_web_httpauth/index.html index ce97baa11..5080d306d 100644 --- a/actix_web_httpauth/index.html +++ b/actix_web_httpauth/index.html @@ -5,15 +5,15 @@
  • Extractors for an Authorization header
  • Middleware for easier authorization checking
  • -

    Supported schemes

    +

    Supported schemes

    Modules

    -

    Type-safe authentication information extractors

    -

    Typed HTTP headers

    -

    HTTP Authentication middleware.

    -
    +

    Type-safe authentication information extractors

    +

    Typed HTTP headers

    +

    HTTP Authentication middleware.

    +
    \ No newline at end of file diff --git a/actix_web_httpauth/middleware/index.html b/actix_web_httpauth/middleware/index.html index ba80ceb94..094886994 100644 --- a/actix_web_httpauth/middleware/index.html +++ b/actix_web_httpauth/middleware/index.html @@ -1,6 +1,6 @@ actix_web_httpauth::middleware - Rust

    Module actix_web_httpauth::middleware[][src]

    Expand description

    HTTP Authentication middleware.

    Structs

    -

    Middleware for checking HTTP authentication.

    -
    +

    Middleware for checking HTTP authentication.

    +
    \ No newline at end of file diff --git a/actix_web_httpauth/middleware/struct.HttpAuthentication.html b/actix_web_httpauth/middleware/struct.HttpAuthentication.html index a8b11a0bd..9be4cf086 100644 --- a/actix_web_httpauth/middleware/struct.HttpAuthentication.html +++ b/actix_web_httpauth/middleware/struct.HttpAuthentication.html @@ -1,4 +1,4 @@ -HttpAuthentication in actix_web_httpauth::middleware - Rust

    Struct actix_web_httpauth::middleware::HttpAuthentication[][src]

    pub struct HttpAuthentication<T, F> where
        T: AuthExtractor
    { /* fields omitted */ }
    Expand description

    Middleware for checking HTTP authentication.

    +HttpAuthentication in actix_web_httpauth::middleware - Rust

    Struct actix_web_httpauth::middleware::HttpAuthentication[][src]

    pub struct HttpAuthentication<T, F> where
        T: AuthExtractor
    { /* fields omitted */ }
    Expand description

    Middleware for checking HTTP authentication.

    If there is no Authorization header in the request, this middleware returns an error immediately, without calling the F callback.

    Otherwise, it will pass both the request and the parsed credentials into it. In case of @@ -6,23 +6,23 @@ successful validation F callback is required to return the Se

    Implementations

    Construct HttpAuthentication middleware with the provided auth extractor T and validation callback F.

    Construct HttpAuthentication middleware for the HTTP “Basic” authentication scheme.

    -

    Example

    +
    Example
    // In this example validator returns immediately, but since it is required to return
     // anything that implements `IntoFuture` trait, it can be extended to query database or to
     // do something else in a async manner.
     async fn validator(
         req: ServiceRequest,
         credentials: BasicAuth,
    -) -> Result<ServiceRequest, Error> {
    +) -> Result<ServiceRequest, Error> {
         // All users are great and more than welcome!
         Ok(req)
     }
     
     let middleware = HttpAuthentication::basic(validator);

    Construct HttpAuthentication middleware for the HTTP “Bearer” authentication scheme.

    -

    Example

    -
    async fn validator(req: ServiceRequest, credentials: BearerAuth) -> Result<ServiceRequest, Error> {
    -    if credentials.token() == "mF_9.B5f-4.1JqM" {
    +
    Example
    +
    async fn validator(req: ServiceRequest, credentials: BearerAuth) -> Result<ServiceRequest, Error> {
    +    if credentials.token() == "mF_9.B5f-4.1JqM" {
             Ok(req)
         } else {
             let config = req.app_data::<Config>()
    @@ -36,7 +36,7 @@ validation callback F.

    let middleware = HttpAuthentication::bearer(validator);

    Trait Implementations

    Returns a copy of the value. Read more

    -

    Performs copy-assignment from source. Read more

    +

    Performs copy-assignment from source. Read more

    Formats the value using the given formatter. Read more

    Responses produced by the service.

    Errors produced by the service.

    @@ -48,12 +48,12 @@ validation callback F.

    Immutably borrows from an owned value. Read more

    Mutably borrows from an owned value. Read more

    Performs the conversion.

    -

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

    -

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

    +

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

    +

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

    Performs the conversion.

    -

    Should always be Self

    +

    Should always be Self

    The resulting type after obtaining ownership.

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

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

    recently added

    @@ -62,6 +62,10 @@ validation callback F.

    Performs the conversion.

    The type returned in the event of a conversion error.

    Performs the conversion.

    -
    +

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

    +

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

    +
    \ No newline at end of file diff --git a/ayu.css b/ayu.css index 3444ac5f1..cb8362865 100644 --- a/ayu.css +++ b/ayu.css @@ -1 +1 @@ - body{background-color:#0f1419;color:#c5c5c5;}h1,h2,h3,h4{color:white;}h1.fqn{border-bottom-color:#5c6773;}h1.fqn a{color:#fff;}h2,h3,h4{border-bottom-color:#5c6773;}h4{border:none;}.in-band{background-color:#0f1419;}.invisible{background:rgba(0,0,0,0);}.docblock code{color:#ffb454;}.code-header{color:#e6e1cf;}.docblock pre>code,pre>code{color:#e6e1cf;}span code{color:#e6e1cf;}.docblock a>code{color:#39AFD7 !important;}.docblock code,.docblock-short code{background-color:#191f26;}pre,.rustdoc.source .example-wrap{color:#e6e1cf;background-color:#191f26;}.sidebar{background-color:#14191f;}.logo-container.rust-logo>img{filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);}*{scrollbar-color:#5c6773 transparent;}.sidebar{scrollbar-color:#5c6773 transparent;}::-webkit-scrollbar-track{background-color:transparent;}::-webkit-scrollbar-thumb{background-color:#5c6773;}.sidebar::-webkit-scrollbar-track{background-color:transparent;}.sidebar::-webkit-scrollbar-thumb{background-color:#5c6773;}.sidebar .current{background-color:transparent;color:#ffb44c;}.source .sidebar{background-color:#0f1419;}.sidebar .location{border-color:#000;background-color:#0f1419;color:#fff;}.sidebar-elems .location{color:#ff7733;}.sidebar-elems .location a{color:#fff;}.sidebar .version{border-bottom-color:#424c57;}.sidebar-title{border-top-color:#5c6773;border-bottom-color:#5c6773;}.block a:hover{background:transparent;color:#ffb44c;}.line-numbers span{color:#5c6773;}.line-numbers .line-highlighted{color:#708090;background-color:rgba(255,236,164,0.06);padding-right:4px;border-right:1px solid #ffb44c;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5{border-bottom-color:#5c6773;}.docblock table td,.docblock table th{border-color:#5c6773;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#c5c5c5;}.search-results a:hover{background-color:#777;}.search-results a:focus{color:#000 !important;background-color:#c6afb3;}.search-results a{color:#0096cf;}.search-results a div.desc{color:#c5c5c5;}.content .item-info::before{color:#ccc;}.content span.foreigntype,.content a.foreigntype{color:#ef57ff;}.content span.union,.content a.union{color:#98a01c;}.content span.constant,.content a.constant,.content span.static,.content a.static{color:#6380a0;}.content span.primitive,.content a.primitive{color:#32889b;}.content span.traitalias,.content a.traitalias{color:#57d399;}.content span.keyword,.content a.keyword{color:#de5249;}.content span.externcrate,.content span.mod,.content a.mod{color:#acccf9;}.content span.struct,.content a.struct{color:#ffa0a5;}.content span.enum,.content a.enum{color:#99e0c9;}.content span.trait,.content a.trait{color:#39AFD7;}.content span.type,.content a.type{color:#cfbcf5;}.content span.fn,.content a.fn,.content span.method,.content a.method,.content span.tymethod,.content a.tymethod,.content .fnname{color:#fdd687;}.content span.attr,.content a.attr,.content span.derive,.content a.derive,.content span.macro,.content a.macro{color:#a37acc;}pre.rust .comment{color:#788797;}pre.rust .doccomment{color:#a1ac88;}nav:not(.sidebar){border-bottom-color:#424c57;}nav.main .current{border-top-color:#5c6773;border-bottom-color:#5c6773;}nav.main .separator{border:1px solid #5c6773;}a{color:#c5c5c5;}body.source .example-wrap pre.rust a{background:#c5c5c5;}.docblock:not(.type-decl) a:not(.srclink):not(.test-arrow),.docblock-short a:not(.srclink):not(.test-arrow),.item-info a,#help a{color:#39AFD7;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}details.rustdoc-toggle>summary::before,details.undocumented>summary::before{filter:invert(100%);}#crate-search{color:#c5c5c5;background-color:#141920;box-shadow:0 0 0 1px #424c57,0 0 0 2px transparent;border-color:#424c57;}.search-input{color:#ffffff;background-color:#141920;box-shadow:0 0 0 1px #424c57,0 0 0 2px transparent;transition:box-shadow 150ms ease-in-out;}#crate-search+.search-input:focus{box-shadow:0 0 0 1px #148099,0 0 0 2px transparent;}.search-input:disabled{background-color:#3e3e3e;}.module-item .stab,.import-item .stab{color:#000;}.stab.unstable,.stab.deprecated,.stab.portability{color:#c5c5c5;background:#314559 !important;border-style:none !important;border-radius:4px;padding:3px 6px 3px 6px;}.stab.portability>code{color:#e6e1cf;background:none;}#help>div{background:#14191f;box-shadow:0px 6px 20px 0px black;border:none;border-radius:4px;}#help>div>span{border-bottom-color:#5c6773;}.since{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:#788797;}.line-numbers :target{background-color:transparent;}pre.rust .number,pre.rust .string{color:#b8cc52;}pre.rust .kw,pre.rust .kw-2,pre.rust .prelude-ty,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .op,pre.rust .lifetime{color:#ff7733;}pre.rust .macro,pre.rust .macro-nonterminal{color:#a37acc;}pre.rust .question-mark{color:#ff9011;}pre.rust .self{color:#36a3d9;font-style:italic;}pre.rust .attribute{color:#e6e1cf;}pre.rust .attribute .ident,pre.rust .attribute .op{color:#e6e1cf;}.example-wrap>pre.line-number{color:#5c67736e;border:none;}a.test-arrow{font-size:100%;color:#788797;border-radius:4px;background-color:rgba(57,175,215,0.09);}a.test-arrow:hover{background-color:rgba(57,175,215,0.368);color:#c5c5c5;}.toggle-label,.code-attribute{color:#999;}:target,:target>*{background:rgba(255,236,164,0.06);}:target{border-right:3px solid rgba(255,180,76,0.85);}pre.compile_fail{border-left:2px solid rgba(255,0,0,.4);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.4);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.5);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.5);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#39AFD7;}.tooltip::after{background-color:#314559;color:#c5c5c5;border:1px solid #5c6773;}.tooltip::before{border-color:transparent #314559 transparent transparent;}.notable-traits-tooltiptext{background-color:#314559;border-color:#5c6773;}.notable-traits-tooltiptext .notable{border-bottom-color:#5c6773;}#titles>button.selected{background-color:#141920 !important;border-bottom:1px solid #ffb44c !important;border-top:none;}#titles>button:not(.selected){background-color:transparent !important;border:none;}#titles>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}#titles>button>div.count{color:#888;}.search-input:focus{}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{}.content span.struct,.content a.struct,.block a.current.struct{}#titles>button:hover,#titles>button.selected{}.content span.type,.content a.type,.block a.current.type{}.content span.union,.content a.union,.block a.current.union{}pre.rust .lifetime{}.stab.unstable{}h2,h3:not(.impl):not(.method):not(.type):not(.tymethod),h4:not(.method):not(.type):not(.tymethod){}.content span.enum,.content a.enum,.block a.current.enum{}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{}.content span.keyword,.content a.keyword,.block a.current.keyword{}pre.rust .comment{}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{}pre.rust .kw{}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{}pre.rust .doccomment{}.stab.deprecated{}.content a.attr,.content a.derive,.content a.macro{}.stab.portability{}.content span.primitive,.content a.primitive,.block a.current.primitive{}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{}pre.rust .kw-2,pre.rust .prelude-ty{}.content span.trait,.content a.trait,.block a.current.trait{}.search-results a:focus span{}a.result-trait:focus{}a.result-traitalias:focus{}a.result-mod:focus,a.result-externcrate:focus{}a.result-mod:focus{}a.result-externcrate:focus{}a.result-enum:focus{}a.result-struct:focus{}a.result-union:focus{}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{}a.result-type:focus{}a.result-foreigntype:focus{}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{}a.result-constant:focus,a.result-static:focus{}a.result-primitive:focus{}a.result-keyword:focus{}@media (max-width:700px){.sidebar-menu{background-color:#14191f;border-bottom-color:#5c6773;border-right-color:#5c6773;}.sidebar-elems{background-color:#14191f;border-right-color:#5c6773;}#sidebar-filler{background-color:#14191f;border-bottom-color:#5c6773;}}kbd{color:#c5c5c5;background-color:#314559;border-color:#5c6773;border-bottom-color:#5c6773;box-shadow-color:#c6cbd1;}#theme-picker,#settings-menu,#help-button{border-color:#5c6773;background-color:#0f1419;color:#fff;}#theme-picker>img,#settings-menu>img{filter:invert(100);}#copy-path{color:#fff;}#copy-path>img{filter:invert(70%);}#copy-path:hover>img{filter:invert(100%);}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#e0e0e0;}#theme-choices{border-color:#5c6773;background-color:#0f1419;}#theme-choices>button:not(:first-child){border-top-color:#5c6773;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:rgba(110,110,110,0.33);}@media (max-width:700px){#theme-picker{background:#0f1419;}}#all-types{background-color:#14191f;}#all-types:hover{background-color:rgba(70,70,70,0.33);}.search-results .result-name span.alias{color:#c5c5c5;}.search-results .result-name span.grey{color:#999;}#sidebar-toggle{background-color:#14191f;}#sidebar-toggle:hover{background-color:rgba(70,70,70,0.33);}#source-sidebar{background-color:#14191f;}#source-sidebar>.title{color:#fff;border-bottom-color:#5c6773;}div.files>a:hover,div.name:hover{background-color:#14191f;color:#ffb44c;}div.files>.selected{background-color:#14191f;color:#ffb44c;}.setting-line>.title{border-bottom-color:#5c6773;}input:checked+.slider{background-color:#ffb454 !important;} \ No newline at end of file + body{background-color:#0f1419;color:#c5c5c5;}h1,h2,h3,h4{color:white;}h1.fqn{border-bottom-color:#5c6773;}h1.fqn a{color:#fff;}h2,h3,h4{border-bottom-color:#5c6773;}h4{border:none;}.in-band{background-color:#0f1419;}.invisible{background:rgba(0,0,0,0);}.docblock code{color:#ffb454;}.code-header{color:#e6e1cf;}.docblock pre>code,pre>code{color:#e6e1cf;}span code{color:#e6e1cf;}.docblock a>code{color:#39AFD7 !important;}.docblock code,.docblock-short code{background-color:#191f26;}pre,.rustdoc.source .example-wrap{color:#e6e1cf;background-color:#191f26;}.sidebar{background-color:#14191f;}.logo-container.rust-logo>img{filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);}*{scrollbar-color:#5c6773 transparent;}.sidebar{scrollbar-color:#5c6773 transparent;}::-webkit-scrollbar-track{background-color:transparent;}::-webkit-scrollbar-thumb{background-color:#5c6773;}.sidebar::-webkit-scrollbar-track{background-color:transparent;}.sidebar::-webkit-scrollbar-thumb{background-color:#5c6773;}.sidebar .current{background-color:transparent;color:#ffb44c;}.source .sidebar{background-color:#0f1419;}.sidebar .location{border-color:#000;background-color:#0f1419;color:#fff;}.sidebar-elems .location{color:#ff7733;}.sidebar-elems .location a{color:#fff;}.sidebar .version{border-bottom-color:#424c57;}.sidebar-title{border-top-color:#5c6773;border-bottom-color:#5c6773;}.block a:hover{background:transparent;color:#ffb44c;}.line-numbers span{color:#5c6773;}.line-numbers .line-highlighted{color:#708090;background-color:rgba(255,236,164,0.06);padding-right:4px;border-right:1px solid #ffb44c;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#5c6773;}.docblock table td,.docblock table th{border-color:#5c6773;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#c5c5c5;}.search-results a:hover{background-color:#777;}.search-results a:focus{color:#000 !important;background-color:#c6afb3;}.search-results a{color:#0096cf;}.search-results a div.desc{color:#c5c5c5;}.content .item-info::before{color:#ccc;}.content span.foreigntype,.content a.foreigntype{color:#ef57ff;}.content span.union,.content a.union{color:#98a01c;}.content span.constant,.content a.constant,.content span.static,.content a.static{color:#6380a0;}.content span.primitive,.content a.primitive{color:#32889b;}.content span.traitalias,.content a.traitalias{color:#57d399;}.content span.keyword,.content a.keyword{color:#de5249;}.content span.externcrate,.content span.mod,.content a.mod{color:#acccf9;}.content span.struct,.content a.struct{color:#ffa0a5;}.content span.enum,.content a.enum{color:#99e0c9;}.content span.trait,.content a.trait{color:#39AFD7;}.content span.type,.content a.type{color:#cfbcf5;}.content span.fn,.content a.fn,.content span.method,.content a.method,.content span.tymethod,.content a.tymethod,.content .fnname{color:#fdd687;}.content span.attr,.content a.attr,.content span.derive,.content a.derive,.content span.macro,.content a.macro{color:#a37acc;}pre.rust .comment{color:#788797;}pre.rust .doccomment{color:#a1ac88;}nav:not(.sidebar){border-bottom-color:#424c57;}nav.main .current{border-top-color:#5c6773;border-bottom-color:#5c6773;}nav.main .separator{border:1px solid #5c6773;}a{color:#c5c5c5;}body.source .example-wrap pre.rust a{background:#333;}.docblock:not(.type-decl) a:not(.srclink):not(.test-arrow),.docblock-short a:not(.srclink):not(.test-arrow),.item-info a,#help a{color:#39AFD7;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}details.rustdoc-toggle>summary::before,details.undocumented>summary::before{filter:invert(100%);}#crate-search{color:#c5c5c5;background-color:#141920;box-shadow:0 0 0 1px #424c57,0 0 0 2px transparent;border-color:#424c57;}.search-input{color:#ffffff;background-color:#141920;box-shadow:0 0 0 1px #424c57,0 0 0 2px transparent;transition:box-shadow 150ms ease-in-out;}#crate-search+.search-input:focus{box-shadow:0 0 0 1px #148099,0 0 0 2px transparent;}.search-input:disabled{background-color:#3e3e3e;}.module-item .stab,.import-item .stab{color:#000;}.stab.unstable,.stab.deprecated,.stab.portability{color:#c5c5c5;background:#314559 !important;border-style:none !important;border-radius:4px;padding:3px 6px 3px 6px;}.stab.portability>code{color:#e6e1cf;background:none;}#help>div{background:#14191f;box-shadow:0px 6px 20px 0px black;border:none;border-radius:4px;}#help span.bottom,#help span.top{border-color:#5c6773;}.since{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:#788797;}.line-numbers :target{background-color:transparent;}pre.rust .number,pre.rust .string{color:#b8cc52;}pre.rust .kw,pre.rust .kw-2,pre.rust .prelude-ty,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .op,pre.rust .lifetime{color:#ff7733;}pre.rust .macro,pre.rust .macro-nonterminal{color:#a37acc;}pre.rust .question-mark{color:#ff9011;}pre.rust .self{color:#36a3d9;font-style:italic;}pre.rust .attribute{color:#e6e1cf;}pre.rust .attribute .ident,pre.rust .attribute .op{color:#e6e1cf;}.example-wrap>pre.line-number{color:#5c67736e;border:none;}a.test-arrow{font-size:100%;color:#788797;border-radius:4px;background-color:rgba(57,175,215,0.09);}a.test-arrow:hover{background-color:rgba(57,175,215,0.368);color:#c5c5c5;}.toggle-label,.code-attribute{color:#999;}:target,:target>*{background:rgba(255,236,164,0.06);}:target{border-right:3px solid rgba(255,180,76,0.85);}pre.compile_fail{border-left:2px solid rgba(255,0,0,.4);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.4);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.5);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.5);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#39AFD7;}.tooltip::after{background-color:#314559;color:#c5c5c5;border:1px solid #5c6773;}.tooltip::before{border-color:transparent #314559 transparent transparent;}.notable-traits-tooltiptext{background-color:#314559;border-color:#5c6773;}.notable-traits-tooltiptext .notable{border-bottom-color:#5c6773;}#titles>button.selected{background-color:#141920 !important;border-bottom:1px solid #ffb44c !important;border-top:none;}#titles>button:not(.selected){background-color:transparent !important;border:none;}#titles>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}#titles>button>div.count{color:#888;}.search-input:focus{}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{}.content span.struct,.content a.struct,.block a.current.struct{}#titles>button:hover,#titles>button.selected{}.content span.type,.content a.type,.block a.current.type{}.content span.union,.content a.union,.block a.current.union{}pre.rust .lifetime{}.stab.unstable{}h2,h3:not(.impl):not(.method):not(.type):not(.tymethod),h4:not(.method):not(.type):not(.tymethod){}.content span.enum,.content a.enum,.block a.current.enum{}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{}.content span.keyword,.content a.keyword,.block a.current.keyword{}pre.rust .comment{}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{}pre.rust .kw{}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{}pre.rust .doccomment{}.stab.deprecated{}.content a.attr,.content a.derive,.content a.macro{}.stab.portability{}.content span.primitive,.content a.primitive,.block a.current.primitive{}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{}pre.rust .kw-2,pre.rust .prelude-ty{}.content span.trait,.content a.trait,.block a.current.trait{}.search-results a:focus span{}a.result-trait:focus{}a.result-traitalias:focus{}a.result-mod:focus,a.result-externcrate:focus{}a.result-mod:focus{}a.result-externcrate:focus{}a.result-enum:focus{}a.result-struct:focus{}a.result-union:focus{}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{}a.result-type:focus{}a.result-foreigntype:focus{}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{}a.result-constant:focus,a.result-static:focus{}a.result-primitive:focus{}a.result-keyword:focus{}@media (max-width:700px){.sidebar-menu{background-color:#14191f;border-bottom-color:#5c6773;border-right-color:#5c6773;}.sidebar-elems{background-color:#14191f;border-right-color:#5c6773;}#sidebar-filler{background-color:#14191f;border-bottom-color:#5c6773;}}kbd{color:#c5c5c5;background-color:#314559;border-color:#5c6773;border-bottom-color:#5c6773;box-shadow-color:#c6cbd1;}#theme-picker,#settings-menu,#help-button{border-color:#5c6773;background-color:#0f1419;color:#fff;}#theme-picker>img,#settings-menu>img{filter:invert(100);}#copy-path{color:#fff;}#copy-path>img{filter:invert(70%);}#copy-path:hover>img{filter:invert(100%);}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#e0e0e0;}#theme-choices{border-color:#5c6773;background-color:#0f1419;}#theme-choices>button:not(:first-child){border-top-color:#5c6773;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:rgba(110,110,110,0.33);}@media (max-width:700px){#theme-picker{background:#0f1419;}}#all-types{background-color:#14191f;}#all-types:hover{background-color:rgba(70,70,70,0.33);}.search-results .result-name span.alias{color:#c5c5c5;}.search-results .result-name span.grey{color:#999;}#sidebar-toggle{background-color:#14191f;}#sidebar-toggle:hover{background-color:rgba(70,70,70,0.33);}#source-sidebar{background-color:#14191f;}#source-sidebar>.title{color:#fff;border-bottom-color:#5c6773;}div.files>a:hover,div.name:hover{background-color:#14191f;color:#ffb44c;}div.files>.selected{background-color:#14191f;color:#ffb44c;}.setting-line>.title{border-bottom-color:#5c6773;}input:checked+.slider{background-color:#ffb454 !important;} \ No newline at end of file diff --git a/dark.css b/dark.css index 5787fd1ce..cb246dc8a 100644 --- a/dark.css +++ b/dark.css @@ -1 +1 @@ -body{background-color:#353535;color:#ddd;}h1,h2,h3,h4{color:#ddd;}h1.fqn{border-bottom-color:#d2d2d2;}h2,h3,h4{border-bottom-color:#d2d2d2;}.in-band{background-color:#353535;}.invisible{background:rgba(0,0,0,0);}.docblock code,.docblock-short code{background-color:#2A2A2A;}pre,.rustdoc.source .example-wrap{background-color:#2A2A2A;}.sidebar{background-color:#505050;}.logo-container.rust-logo>img{filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff)}*{scrollbar-color:rgb(64,65,67) #717171;}.sidebar{scrollbar-color:rgba(32,34,37,.6) transparent;}::-webkit-scrollbar-track{background-color:#717171;}::-webkit-scrollbar-thumb{background-color:rgba(32,34,37,.6);}.sidebar::-webkit-scrollbar-track{background-color:#717171;}.sidebar::-webkit-scrollbar-thumb{background-color:rgba(32,34,37,.6);}.sidebar .current{background-color:#333;}.source .sidebar{background-color:#353535;}.sidebar .location{border-color:#fff;background:#575757;color:#DDD;}.sidebar .version{border-bottom-color:#DDD;}.sidebar-title{border-top-color:#777;border-bottom-color:#777;}.block a:hover{background:#444;}.line-numbers span{color:#3B91E2;}.line-numbers .line-highlighted{background-color:#0a042f !important;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5{border-bottom-color:#DDD;}.docblock table td,.docblock table th{border-color:#ddd;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#ddd;}.search-results a:hover{background-color:#777;}.search-results a:focus{color:#eee !important;background-color:#616161;}.search-results a:focus span{color:#eee !important;}a.result-trait:focus{background-color:#013191;}a.result-traitalias:focus{background-color:#013191;}a.result-mod:focus,a.result-externcrate:focus{background-color:#afc6e4;}a.result-mod:focus{background-color:#803a1b;}a.result-externcrate:focus{background-color:#396bac;}a.result-enum:focus{background-color:#5b4e68;}a.result-struct:focus{background-color:#194e9f;}a.result-union:focus{background-color:#b7bd49;}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{background-color:#4950ed;}a.result-type:focus{background-color:#38902c;}a.result-foreigntype:focus{background-color:#b200d6;}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{background-color:#217d1c;}a.result-constant:focus,a.result-static:focus{background-color:#0063cc;}a.result-primitive:focus{background-color:#00708a;}a.result-keyword:focus{background-color:#884719;}.content .item-info::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#82b089;}.content span.struct,.content a.struct,.block a.current.struct{color:#2dbfb8;}.content span.type,.content a.type,.block a.current.type{color:#ff7f00;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#dd7de8;}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{color:#09bd00;}.content span.union,.content a.union,.block a.current.union{color:#a6ae37;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#82a5c9;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#43aec7;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#bda000;}.content span.trait,.content a.trait,.block a.current.trait{color:#b78cf2;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#b397da;}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{color:#2BAB63;}.content span.keyword,.content a.keyword,.block a.current.keyword{color:#de5249;}pre.rust .comment{color:#8d8d8b;}pre.rust .doccomment{color:#8ca375;}nav:not(.sidebar){border-bottom-color:#4e4e4e;}nav.main .current{border-top-color:#eee;border-bottom-color:#eee;}nav.main .separator{border-color:#eee;}a{color:#ddd;}body.source .example-wrap pre.rust a{background:#333;}.docblock:not(.type-decl) a:not(.srclink):not(.test-arrow),.docblock-short a:not(.srclink):not(.test-arrow),.item-info a,#help a{color:#D2991D;}a.test-arrow{color:#dedede;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}details.rustdoc-toggle>summary::before,details.undocumented>summary::before{filter:invert(100%);}#crate-search{color:#111;background-color:#f0f0f0;border-color:#000;box-shadow:0 0 0 1px #000,0 0 0 2px transparent;}.search-input{color:#111;background-color:#f0f0f0;box-shadow:0 0 0 1px #000,0 0 0 2px transparent;}.search-input:focus{border-color:#008dfd;}.search-input:disabled{background-color:#c5c4c4;}#crate-search+.search-input:focus{box-shadow:0 0 8px 4px #078dd8;}.module-item .stab,.import-item .stab{color:#ddd;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;color:#2f2f2f;}.stab.deprecated{background:#ffc4c4;border-color:#db7b7b;color:#2f2f2f;}.stab.portability{background:#F3DFFF;border-color:#b07bdb;color:#2f2f2f;}.stab.portability>code{background:none;}#help>div{background:#4d4d4d;border-color:#bfbfbf;}#help>div>span{border-bottom-color:#bfbfbf;}#help dt{border-color:#bfbfbf;background:rgba(0,0,0,0);}.since{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:#ddd;}.line-numbers :target{background-color:transparent;}pre.rust .kw{color:#ab8ac1;}pre.rust .kw-2,pre.rust .prelude-ty{color:#769acb;}pre.rust .number,pre.rust .string{color:#83a300;}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{color:#ee6868;}pre.rust .macro,pre.rust .macro-nonterminal{color:#3E999F;}pre.rust .lifetime{color:#d97f26;}pre.rust .question-mark{color:#ff9011;}.example-wrap>pre.line-number{border-color:#4a4949;}a.test-arrow{background-color:rgba(78,139,202,0.2);}a.test-arrow:hover{background-color:#4e8bca;}.toggle-label,.code-attribute{color:#999;}:target,:target>*{background-color:#494a3d;}:target{border-right:3px solid #bb7410;}pre.compile_fail{border-left:2px solid rgba(255,0,0,.8);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.8);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.8);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.8);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#0089ff;}.tooltip::after{background-color:#000;color:#fff;border-color:#000;}.tooltip::before{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#111;border-color:#777;}.notable-traits-tooltiptext .notable{border-bottom-color:#d2d2d2;}#titles>button:not(.selected){background-color:#252525;border-top-color:#252525;}#titles>button:hover,#titles>button.selected{border-top-color:#0089ff;background-color:#353535;}#titles>button>div.count{color:#888;}@media (max-width:700px){.sidebar-menu{background-color:#505050;border-bottom-color:#e0e0e0;border-right-color:#e0e0e0;}.sidebar-elems{background-color:#505050;border-right-color:#000;}#sidebar-filler{background-color:#505050;border-bottom-color:#e0e0e0;}}kbd{color:#000;background-color:#fafbfc;border-color:#d1d5da;border-bottom-color:#c6cbd1;box-shadow-color:#c6cbd1;}#theme-picker,#settings-menu,#help-button{border-color:#e0e0e0;background:#f0f0f0;color:#000;}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#ffb900;}#copy-path{color:#999;}#copy-path>img{filter:invert(50%);}#copy-path:hover>img{filter:invert(65%);}#theme-choices{border-color:#e0e0e0;background-color:#353535;}#theme-choices>button:not(:first-child){border-top-color:#e0e0e0;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:#4e4e4e;}@media (max-width:700px){#theme-picker{background:#f0f0f0;}}#all-types{background-color:#505050;}#all-types:hover{background-color:#606060;}.search-results .result-name span.alias{color:#fff;}.search-results .result-name span.grey{color:#ccc;}#sidebar-toggle{background-color:#565656;}#sidebar-toggle:hover{background-color:#676767;}#source-sidebar{background-color:#565656;}#source-sidebar>.title{border-bottom-color:#ccc;}div.files>a:hover,div.name:hover{background-color:#444;}div.files>.selected{background-color:#333;}.setting-line>.title{border-bottom-color:#ddd;} \ No newline at end of file +body{background-color:#353535;color:#ddd;}h1,h2,h3,h4{color:#ddd;}h1.fqn{border-bottom-color:#d2d2d2;}h2,h3,h4{border-bottom-color:#d2d2d2;}.in-band{background-color:#353535;}.invisible{background:rgba(0,0,0,0);}.docblock code,.docblock-short code{background-color:#2A2A2A;}pre,.rustdoc.source .example-wrap{background-color:#2A2A2A;}.sidebar{background-color:#505050;}.logo-container.rust-logo>img{filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff)}*{scrollbar-color:rgb(64,65,67) #717171;}.sidebar{scrollbar-color:rgba(32,34,37,.6) transparent;}::-webkit-scrollbar-track{background-color:#717171;}::-webkit-scrollbar-thumb{background-color:rgba(32,34,37,.6);}.sidebar::-webkit-scrollbar-track{background-color:#717171;}.sidebar::-webkit-scrollbar-thumb{background-color:rgba(32,34,37,.6);}.sidebar .current{background-color:#333;}.source .sidebar{background-color:#353535;}.sidebar .location{border-color:#fff;background:#575757;color:#DDD;}.sidebar .version{border-bottom-color:#DDD;}.sidebar-title{border-top-color:#777;border-bottom-color:#777;}.block a:hover{background:#444;}.line-numbers span{color:#3B91E2;}.line-numbers .line-highlighted{background-color:#0a042f !important;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#DDD;}.docblock table td,.docblock table th{border-color:#ddd;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#ddd;}.search-results a:hover{background-color:#777;}.search-results a:focus{color:#eee !important;background-color:#616161;}.search-results a:focus span{color:#eee !important;}a.result-trait:focus{background-color:#013191;}a.result-traitalias:focus{background-color:#013191;}a.result-mod:focus,a.result-externcrate:focus{background-color:#afc6e4;}a.result-mod:focus{background-color:#803a1b;}a.result-externcrate:focus{background-color:#396bac;}a.result-enum:focus{background-color:#5b4e68;}a.result-struct:focus{background-color:#194e9f;}a.result-union:focus{background-color:#b7bd49;}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{background-color:#4950ed;}a.result-type:focus{background-color:#38902c;}a.result-foreigntype:focus{background-color:#b200d6;}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{background-color:#217d1c;}a.result-constant:focus,a.result-static:focus{background-color:#0063cc;}a.result-primitive:focus{background-color:#00708a;}a.result-keyword:focus{background-color:#884719;}.content .item-info::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#82b089;}.content span.struct,.content a.struct,.block a.current.struct{color:#2dbfb8;}.content span.type,.content a.type,.block a.current.type{color:#ff7f00;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#dd7de8;}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{color:#09bd00;}.content span.union,.content a.union,.block a.current.union{color:#a6ae37;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#82a5c9;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#43aec7;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#bda000;}.content span.trait,.content a.trait,.block a.current.trait{color:#b78cf2;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#b397da;}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{color:#2BAB63;}.content span.keyword,.content a.keyword,.block a.current.keyword{color:#de5249;}pre.rust .comment{color:#8d8d8b;}pre.rust .doccomment{color:#8ca375;}nav:not(.sidebar){border-bottom-color:#4e4e4e;}nav.main .current{border-top-color:#eee;border-bottom-color:#eee;}nav.main .separator{border-color:#eee;}a{color:#ddd;}body.source .example-wrap pre.rust a{background:#333;}.docblock:not(.type-decl) a:not(.srclink):not(.test-arrow),.docblock-short a:not(.srclink):not(.test-arrow),.item-info a,#help a{color:#D2991D;}a.test-arrow{color:#dedede;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}details.rustdoc-toggle>summary::before,details.undocumented>summary::before{filter:invert(100%);}#crate-search{color:#111;background-color:#f0f0f0;border-color:#000;box-shadow:0 0 0 1px #000,0 0 0 2px transparent;}.search-input{color:#111;background-color:#f0f0f0;box-shadow:0 0 0 1px #000,0 0 0 2px transparent;}.search-input:focus{border-color:#008dfd;}.search-input:disabled{background-color:#c5c4c4;}#crate-search+.search-input:focus{box-shadow:0 0 8px 4px #078dd8;}.module-item .stab,.import-item .stab{color:#ddd;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;color:#2f2f2f;}.stab.deprecated{background:#ffc4c4;border-color:#db7b7b;color:#2f2f2f;}.stab.portability{background:#F3DFFF;border-color:#b07bdb;color:#2f2f2f;}.stab.portability>code{background:none;}#help>div{background:#4d4d4d;border-color:#bfbfbf;}#help span.bottom,#help span.top{border-color:#bfbfbf;}#help dt{border-color:#bfbfbf;background:rgba(0,0,0,0);}.since{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:#ddd;}.line-numbers :target{background-color:transparent;}pre.rust .kw{color:#ab8ac1;}pre.rust .kw-2,pre.rust .prelude-ty{color:#769acb;}pre.rust .number,pre.rust .string{color:#83a300;}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{color:#ee6868;}pre.rust .macro,pre.rust .macro-nonterminal{color:#3E999F;}pre.rust .lifetime{color:#d97f26;}pre.rust .question-mark{color:#ff9011;}.example-wrap>pre.line-number{border-color:#4a4949;}a.test-arrow{background-color:rgba(78,139,202,0.2);}a.test-arrow:hover{background-color:#4e8bca;}.toggle-label,.code-attribute{color:#999;}:target,:target>*{background-color:#494a3d;}:target{border-right:3px solid #bb7410;}pre.compile_fail{border-left:2px solid rgba(255,0,0,.8);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.8);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.8);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.8);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#0089ff;}.tooltip::after{background-color:#000;color:#fff;border-color:#000;}.tooltip::before{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#111;border-color:#777;}.notable-traits-tooltiptext .notable{border-bottom-color:#d2d2d2;}#titles>button:not(.selected){background-color:#252525;border-top-color:#252525;}#titles>button:hover,#titles>button.selected{border-top-color:#0089ff;background-color:#353535;}#titles>button>div.count{color:#888;}@media (max-width:700px){.sidebar-menu{background-color:#505050;border-bottom-color:#e0e0e0;border-right-color:#e0e0e0;}.sidebar-elems{background-color:#505050;border-right-color:#000;}#sidebar-filler{background-color:#505050;border-bottom-color:#e0e0e0;}}kbd{color:#000;background-color:#fafbfc;border-color:#d1d5da;border-bottom-color:#c6cbd1;box-shadow-color:#c6cbd1;}#theme-picker,#settings-menu,#help-button{border-color:#e0e0e0;background:#f0f0f0;color:#000;}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#ffb900;}#copy-path{color:#999;}#copy-path>img{filter:invert(50%);}#copy-path:hover>img{filter:invert(65%);}#theme-choices{border-color:#e0e0e0;background-color:#353535;}#theme-choices>button:not(:first-child){border-top-color:#e0e0e0;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:#4e4e4e;}@media (max-width:700px){#theme-picker{background:#f0f0f0;}}#all-types{background-color:#505050;}#all-types:hover{background-color:#606060;}.search-results .result-name span.alias{color:#fff;}.search-results .result-name span.grey{color:#ccc;}#sidebar-toggle{background-color:#565656;}#sidebar-toggle:hover{background-color:#676767;}#source-sidebar{background-color:#565656;}#source-sidebar>.title{border-bottom-color:#ccc;}div.files>a:hover,div.name:hover{background-color:#444;}div.files>.selected{background-color:#333;}.setting-line>.title{border-bottom-color:#ddd;} \ No newline at end of file diff --git a/implementors/actix_service/transform/trait.Transform.js b/implementors/actix_service/transform/trait.Transform.js index e3ae7d8c2..e296f9521 100644 --- a/implementors/actix_service/transform/trait.Transform.js +++ b/implementors/actix_service/transform/trait.Transform.js @@ -1,5 +1,5 @@ (function() {var implementors = {}; -implementors["actix_cors"] = [{"text":"impl<S> Transform<S, ServiceRequest> for Cors where
        S: Service<ServiceRequest, Response = ServiceResponse, Error = Error>,
        S::Future: 'static, 
    ","synthetic":false,"types":["actix_cors::builder::Cors"]}]; +implementors["actix_cors"] = [{"text":"impl<S, B> Transform<S, ServiceRequest> for Cors where
        S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error>,
        S::Future: 'static,
        B: MessageBody + 'static,
        B::Error: StdError
    ","synthetic":false,"types":["actix_cors::builder::Cors"]}]; implementors["actix_identity"] = [{"text":"impl<S, T, B> Transform<S, ServiceRequest> for IdentityService<T> where
        S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static,
        S::Future: 'static,
        T: IdentityPolicy,
        B: MessageBody + 'static,
        B::Error: StdError
    ","synthetic":false,"types":["actix_identity::middleware::IdentityService"]}]; implementors["actix_redis"] = [{"text":"impl<S, B> Transform<S, ServiceRequest> for RedisSession where
        S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static,
        S::Future: 'static,
        B: 'static, 
    ","synthetic":false,"types":["actix_redis::session::RedisSession"]}]; implementors["actix_session"] = [{"text":"impl<S, B> Transform<S, ServiceRequest> for CookieSession where
        S: Service<ServiceRequest, Response = ServiceResponse<B>>,
        S::Future: 'static,
        S::Error: 'static,
        B: MessageBody + 'static,
        B::Error: StdError
    ","synthetic":false,"types":["actix_session::cookie::CookieSession"]}]; diff --git a/implementors/core/convert/trait.From.js b/implementors/core/convert/trait.From.js index 5938f9bc2..6d229f444 100644 --- a/implementors/core/convert/trait.From.js +++ b/implementors/core/convert/trait.From.js @@ -1,5 +1,5 @@ (function() {var implementors = {}; implementors["actix_protobuf"] = [{"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_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> From<S> for Authorization<S> where
        S: Scheme
    ","synthetic":false,"types":["actix_web_httpauth::headers::authorization::header::Authorization"]}]; +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> From<S> for Authorization<S> where
        S: Scheme
    ","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/marker/trait.Freeze.js b/implementors/core/marker/trait.Freeze.js index 5b3976409..f7c518525 100644 --- a/implementors/core/marker/trait.Freeze.js +++ b/implementors/core/marker/trait.Freeze.js @@ -1,7 +1,7 @@ (function() {var implementors = {}; implementors["actix_cors"] = [{"text":"impl Freeze for Cors","synthetic":true,"types":["actix_cors::builder::Cors"]},{"text":"impl Freeze for CorsError","synthetic":true,"types":["actix_cors::error::CorsError"]}]; implementors["actix_identity"] = [{"text":"impl Freeze for CookieIdentityPolicy","synthetic":true,"types":["actix_identity::cookie::CookieIdentityPolicy"]},{"text":"impl Freeze for Identity","synthetic":true,"types":["actix_identity::identity::Identity"]},{"text":"impl<T> Freeze for IdentityService<T>","synthetic":true,"types":["actix_identity::middleware::IdentityService"]}]; -implementors["actix_protobuf"] = [{"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_protobuf"] = [{"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 RedisSession","synthetic":true,"types":["actix_redis::session::RedisSession"]},{"text":"impl Freeze for Error","synthetic":true,"types":["actix_redis::Error"]}]; implementors["actix_session"] = [{"text":"impl Freeze for CookieSession","synthetic":true,"types":["actix_session::cookie::CookieSession"]},{"text":"impl Freeze for Session","synthetic":true,"types":["actix_session::Session"]},{"text":"impl Freeze for SessionStatus","synthetic":true,"types":["actix_session::SessionStatus"]}]; 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"]}]; diff --git a/light.css b/light.css index d4d3882e3..9ad7a698b 100644 --- a/light.css +++ b/light.css @@ -1 +1 @@ - body{background-color:white;color:black;}h1,h2,h3,h4{color:black;}h1.fqn{border-bottom-color:#D5D5D5;}h2,h3,h4{border-bottom-color:#DDDDDD;}.in-band{background-color:white;}.invisible{background:rgba(0,0,0,0);}.docblock code,.docblock-short code{background-color:#F5F5F5;}pre,.rustdoc.source .example-wrap{background-color:#F5F5F5;}.sidebar{background-color:#F1F1F1;}*{scrollbar-color:rgba(36,37,39,0.6) #e6e6e6;}.sidebar{scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;}.logo-container.rust-logo>img{}::-webkit-scrollbar-track{background-color:#ecebeb;}::-webkit-scrollbar-thumb{background-color:rgba(36,37,39,0.6);}.sidebar::-webkit-scrollbar-track{background-color:#dcdcdc;}.sidebar::-webkit-scrollbar-thumb{background-color:rgba(36,37,39,0.6);}.sidebar .current{background-color:#fff;}.source .sidebar{background-color:#fff;}.sidebar .location{border-color:#000;background-color:#fff;color:#333;}.sidebar .version{border-bottom-color:#DDD;}.sidebar-title{border-top-color:#777;border-bottom-color:#777;}.block a:hover{background:#F5F5F5;}.line-numbers span{color:#c67e2d;}.line-numbers .line-highlighted{background-color:#f6fdb0 !important;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5{border-bottom-color:#ddd;}.docblock table td,.docblock table th{border-color:#ddd;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#4E4C4C;}.search-results a:hover{background-color:#ddd;}.search-results a:focus{color:#000 !important;background-color:#ccc;}.search-results a:focus span{color:#000 !important;}a.result-trait:focus{background-color:#c7b6ff;}a.result-traitalias:focus{background-color:#c7b6ff;}a.result-mod:focus,a.result-externcrate:focus{background-color:#afc6e4;}a.result-enum:focus{background-color:#b4d1b9;}a.result-struct:focus{background-color:#e7b1a0;}a.result-union:focus{background-color:#b7bd49;}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{background-color:#c6afb3;}a.result-type:focus{background-color:#ffc891;}a.result-foreigntype:focus{background-color:#f5c4ff;}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{background-color:#8ce488;}a.result-constant:focus,a.result-static:focus{background-color:#c3e0ff;}a.result-primitive:focus{background-color:#9aecff;}a.result-keyword:focus{background-color:#f99650;}.content .item-info::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#508157;}.content span.struct,.content a.struct,.block a.current.struct{color:#ad448e;}.content span.type,.content a.type,.block a.current.type{color:#ba5d00;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#cd00e2;}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{color:#068000;}.content span.union,.content a.union,.block a.current.union{color:#767b27;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#546e8a;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#2c8093;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#4d76ae;}.content span.trait,.content a.trait,.block a.current.trait{color:#7c5af3;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#6841f1;}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{color:#9a6e31;}.content span.keyword,.content a.keyword,.block a.current.keyword{color:#de5249;}nav:not(.sidebar){border-bottom-color:#e0e0e0;}nav.main .current{border-top-color:#000;border-bottom-color:#000;}nav.main .separator{border:1px solid #000;}a{color:#000;}body.source .example-wrap pre.rust a{background:#eee;}.docblock:not(.type-decl) a:not(.srclink):not(.test-arrow),.docblock-short a:not(.srclink):not(.test-arrow),.item-info a,#help a{color:#3873AD;}a.test-arrow{color:#f5f5f5;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}#crate-search{color:#555;background-color:white;border-color:#e0e0e0;box-shadow:0 0 0 1px #e0e0e0,0 0 0 2px transparent;}.search-input{color:#555;background-color:white;box-shadow:0 0 0 1px #e0e0e0,0 0 0 2px transparent;}.search-input:focus{border-color:#66afe9;}.search-input:disabled{background-color:#e6e6e6;}#crate-search+.search-input:focus{box-shadow:0 0 8px #078dd8;}.module-item .stab,.import-item .stab{color:#000;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;}.stab.deprecated{background:#ffc4c4;border-color:#db7b7b;}.stab.portability{background:#F3DFFF;border-color:#b07bdb;}.stab.portability>code{background:none;}#help>div{background:#e9e9e9;border-color:#bfbfbf;}#help>div>span{border-bottom-color:#bfbfbf;}.since{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:black;}.line-numbers :target{background-color:transparent;}pre.rust .kw{color:#8959A8;}pre.rust .kw-2,pre.rust .prelude-ty{color:#4271AE;}pre.rust .number,pre.rust .string{color:#718C00;}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{color:#C82829;}pre.rust .comment{color:#8E908C;}pre.rust .doccomment{color:#4D4D4C;}pre.rust .macro,pre.rust .macro-nonterminal{color:#3E999F;}pre.rust .lifetime{color:#B76514;}pre.rust .question-mark{color:#ff9011;}.example-wrap>pre.line-number{border-color:#c7c7c7;}a.test-arrow{background-color:rgba(78,139,202,0.2);}a.test-arrow:hover{background-color:#4e8bca;}.toggle-label,.code-attribute{color:#999;}:target,:target>*{background:#FDFFD3;}:target{border-right:3px solid #ffb44c;}pre.compile_fail{border-left:2px solid rgba(255,0,0,.5);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.5);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.5);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.5);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#0089ff;}.tooltip::after{background-color:#000;color:#fff;}.tooltip::before{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#eee;border-color:#999;}.notable-traits-tooltiptext .notable{border-bottom-color:#DDDDDD;}#titles>button:not(.selected){background-color:#e6e6e6;border-top-color:#e6e6e6;}#titles>button:hover,#titles>button.selected{background-color:#ffffff;border-top-color:#0089ff;}#titles>button>div.count{color:#888;}@media (max-width:700px){.sidebar-menu{background-color:#F1F1F1;border-bottom-color:#e0e0e0;border-right-color:#e0e0e0;}.sidebar-elems{background-color:#F1F1F1;border-right-color:#000;}#sidebar-filler{background-color:#F1F1F1;border-bottom-color:#e0e0e0;}}kbd{color:#000;background-color:#fafbfc;border-color:#d1d5da;border-bottom-color:#c6cbd1;box-shadow-color:#c6cbd1;}#theme-picker,#settings-menu,#help-button{border-color:#e0e0e0;background-color:#fff;}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#717171;}#copy-path{color:#999;}#copy-path>img{filter:invert(50%);}#copy-path:hover>img{filter:invert(35%);}#theme-choices{border-color:#ccc;background-color:#fff;}#theme-choices>button:not(:first-child){border-top-color:#e0e0e0;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:#eee;}@media (max-width:700px){#theme-picker{background:#fff;}}#all-types{background-color:#fff;}#all-types:hover{background-color:#f9f9f9;}.search-results .result-name span.alias{color:#000;}.search-results .result-name span.grey{color:#999;}#sidebar-toggle{background-color:#F1F1F1;}#sidebar-toggle:hover{background-color:#E0E0E0;}#source-sidebar{background-color:#F1F1F1;}#source-sidebar>.title{border-bottom-color:#ccc;}div.files>a:hover,div.name:hover{background-color:#E0E0E0;}div.files>.selected{background-color:#fff;}.setting-line>.title{border-bottom-color:#D5D5D5;} \ No newline at end of file + body{background-color:white;color:black;}h1,h2,h3,h4{color:black;}h1.fqn{border-bottom-color:#D5D5D5;}h2,h3,h4{border-bottom-color:#DDDDDD;}.in-band{background-color:white;}.invisible{background:rgba(0,0,0,0);}.docblock code,.docblock-short code{background-color:#F5F5F5;}pre,.rustdoc.source .example-wrap{background-color:#F5F5F5;}.sidebar{background-color:#F1F1F1;}*{scrollbar-color:rgba(36,37,39,0.6) #e6e6e6;}.sidebar{scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;}.logo-container.rust-logo>img{}::-webkit-scrollbar-track{background-color:#ecebeb;}::-webkit-scrollbar-thumb{background-color:rgba(36,37,39,0.6);}.sidebar::-webkit-scrollbar-track{background-color:#dcdcdc;}.sidebar::-webkit-scrollbar-thumb{background-color:rgba(36,37,39,0.6);}.sidebar .current{background-color:#fff;}.source .sidebar{background-color:#fff;}.sidebar .location{border-color:#000;background-color:#fff;color:#333;}.sidebar .version{border-bottom-color:#DDD;}.sidebar-title{border-top-color:#777;border-bottom-color:#777;}.block a:hover{background:#F5F5F5;}.line-numbers span{color:#c67e2d;}.line-numbers .line-highlighted{background-color:#f6fdb0 !important;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#ddd;}.docblock table td,.docblock table th{border-color:#ddd;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#4E4C4C;}.search-results a:hover{background-color:#ddd;}.search-results a:focus{color:#000 !important;background-color:#ccc;}.search-results a:focus span{color:#000 !important;}a.result-trait:focus{background-color:#c7b6ff;}a.result-traitalias:focus{background-color:#c7b6ff;}a.result-mod:focus,a.result-externcrate:focus{background-color:#afc6e4;}a.result-enum:focus{background-color:#b4d1b9;}a.result-struct:focus{background-color:#e7b1a0;}a.result-union:focus{background-color:#b7bd49;}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{background-color:#c6afb3;}a.result-type:focus{background-color:#ffc891;}a.result-foreigntype:focus{background-color:#f5c4ff;}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{background-color:#8ce488;}a.result-constant:focus,a.result-static:focus{background-color:#c3e0ff;}a.result-primitive:focus{background-color:#9aecff;}a.result-keyword:focus{background-color:#f99650;}.content .item-info::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#508157;}.content span.struct,.content a.struct,.block a.current.struct{color:#ad448e;}.content span.type,.content a.type,.block a.current.type{color:#ba5d00;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#cd00e2;}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{color:#068000;}.content span.union,.content a.union,.block a.current.union{color:#767b27;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#546e8a;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#2c8093;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#4d76ae;}.content span.trait,.content a.trait,.block a.current.trait{color:#7c5af3;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#6841f1;}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{color:#9a6e31;}.content span.keyword,.content a.keyword,.block a.current.keyword{color:#de5249;}nav:not(.sidebar){border-bottom-color:#e0e0e0;}nav.main .current{border-top-color:#000;border-bottom-color:#000;}nav.main .separator{border:1px solid #000;}a{color:#000;}body.source .example-wrap pre.rust a{background:#eee;}.docblock:not(.type-decl) a:not(.srclink):not(.test-arrow),.docblock-short a:not(.srclink):not(.test-arrow),.item-info a,#help a{color:#3873AD;}a.test-arrow{color:#f5f5f5;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}#crate-search{color:#555;background-color:white;border-color:#e0e0e0;box-shadow:0 0 0 1px #e0e0e0,0 0 0 2px transparent;}.search-input{color:#555;background-color:white;box-shadow:0 0 0 1px #e0e0e0,0 0 0 2px transparent;}.search-input:focus{border-color:#66afe9;}.search-input:disabled{background-color:#e6e6e6;}#crate-search+.search-input:focus{box-shadow:0 0 8px #078dd8;}.module-item .stab,.import-item .stab{color:#000;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;}.stab.deprecated{background:#ffc4c4;border-color:#db7b7b;}.stab.portability{background:#F3DFFF;border-color:#b07bdb;}.stab.portability>code{background:none;}#help>div{background:#e9e9e9;border-color:#bfbfbf;}#help span.bottom,#help span.top{border-color:#bfbfbf;}.since{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:black;}.line-numbers :target{background-color:transparent;}pre.rust .kw{color:#8959A8;}pre.rust .kw-2,pre.rust .prelude-ty{color:#4271AE;}pre.rust .number,pre.rust .string{color:#718C00;}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{color:#C82829;}pre.rust .comment{color:#8E908C;}pre.rust .doccomment{color:#4D4D4C;}pre.rust .macro,pre.rust .macro-nonterminal{color:#3E999F;}pre.rust .lifetime{color:#B76514;}pre.rust .question-mark{color:#ff9011;}.example-wrap>pre.line-number{border-color:#c7c7c7;}a.test-arrow{background-color:rgba(78,139,202,0.2);}a.test-arrow:hover{background-color:#4e8bca;}.toggle-label,.code-attribute{color:#999;}:target,:target>*{background:#FDFFD3;}:target{border-right:3px solid #ffb44c;}pre.compile_fail{border-left:2px solid rgba(255,0,0,.5);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.5);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.5);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.5);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#0089ff;}.tooltip::after{background-color:#000;color:#fff;}.tooltip::before{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#eee;border-color:#999;}.notable-traits-tooltiptext .notable{border-bottom-color:#DDDDDD;}#titles>button:not(.selected){background-color:#e6e6e6;border-top-color:#e6e6e6;}#titles>button:hover,#titles>button.selected{background-color:#ffffff;border-top-color:#0089ff;}#titles>button>div.count{color:#888;}@media (max-width:700px){.sidebar-menu{background-color:#F1F1F1;border-bottom-color:#e0e0e0;border-right-color:#e0e0e0;}.sidebar-elems{background-color:#F1F1F1;border-right-color:#000;}#sidebar-filler{background-color:#F1F1F1;border-bottom-color:#e0e0e0;}}kbd{color:#000;background-color:#fafbfc;border-color:#d1d5da;border-bottom-color:#c6cbd1;box-shadow-color:#c6cbd1;}#theme-picker,#settings-menu,#help-button{border-color:#e0e0e0;background-color:#fff;}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#717171;}#copy-path{color:#999;}#copy-path>img{filter:invert(50%);}#copy-path:hover>img{filter:invert(35%);}#theme-choices{border-color:#ccc;background-color:#fff;}#theme-choices>button:not(:first-child){border-top-color:#e0e0e0;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:#eee;}@media (max-width:700px){#theme-picker{background:#fff;}}#all-types{background-color:#fff;}#all-types:hover{background-color:#f9f9f9;}.search-results .result-name span.alias{color:#000;}.search-results .result-name span.grey{color:#999;}#sidebar-toggle{background-color:#F1F1F1;}#sidebar-toggle:hover{background-color:#E0E0E0;}#source-sidebar{background-color:#F1F1F1;}#source-sidebar>.title{border-bottom-color:#ccc;}div.files>a:hover,div.name:hover{background-color:#E0E0E0;}div.files>.selected{background-color:#fff;}.setting-line>.title{border-bottom-color:#D5D5D5;} \ No newline at end of file diff --git a/main.js b/main.js index 33ee852cf..e8add7483 100644 --- a/main.js +++ b/main.js @@ -1,8 +1,8 @@ -if(!String.prototype.startsWith){String.prototype.startsWith=function(searchString,position){position=position||0;return this.indexOf(searchString,position)===position}}if(!String.prototype.endsWith){String.prototype.endsWith=function(suffix,length){var l=length||this.length;return this.indexOf(suffix,l-suffix.length)!==-1}}if(!DOMTokenList.prototype.add){DOMTokenList.prototype.add=function(className){if(className&&!hasClass(this,className)){if(this.className&&this.className.length>0){this.className+=" "+className}else{this.className=className}}}}if(!DOMTokenList.prototype.remove){DOMTokenList.prototype.remove=function(className){if(className&&this.className){this.className=(" "+this.className+" ").replace(" "+className+" "," ").trim()}}}(function(){var rustdocVars=document.getElementById("rustdoc-vars");if(rustdocVars){window.rootPath=rustdocVars.attributes["data-root-path"].value;window.currentCrate=rustdocVars.attributes["data-current-crate"].value;window.searchJS=rustdocVars.attributes["data-search-js"].value;window.searchIndexJS=rustdocVars.attributes["data-search-index-js"].value}var sidebarVars=document.getElementById("sidebar-vars");if(sidebarVars){window.sidebarCurrent={name:sidebarVars.attributes["data-name"].value,ty:sidebarVars.attributes["data-ty"].value,relpath:sidebarVars.attributes["data-relpath"].value,}}}());function getVirtualKey(ev){if("key"in ev&&typeof ev.key!="undefined"){return ev.key}var c=ev.charCode||ev.keyCode;if(c==27){return"Escape"}return String.fromCharCode(c)}var THEME_PICKER_ELEMENT_ID="theme-picker";var THEMES_ELEMENT_ID="theme-choices";function getThemesElement(){return document.getElementById(THEMES_ELEMENT_ID)}function getThemePickerElement(){return document.getElementById(THEME_PICKER_ELEMENT_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function showThemeButtonState(){var themePicker=getThemePickerElement();var themeChoices=getThemesElement();themeChoices.style.display="block";themePicker.style.borderBottomRightRadius="0";themePicker.style.borderBottomLeftRadius="0"}function hideThemeButtonState(){var themePicker=getThemePickerElement();var themeChoices=getThemesElement();themeChoices.style.display="none";themePicker.style.borderBottomRightRadius="3px";themePicker.style.borderBottomLeftRadius="3px"}(function(){var themeChoices=getThemesElement();var themePicker=getThemePickerElement();var availableThemes=["ayu","dark","light"];function switchThemeButtonState(){if(themeChoices.style.display==="block"){hideThemeButtonState()}else{showThemeButtonState()}}function handleThemeButtonsBlur(e){var active=document.activeElement;var related=e.relatedTarget;if(active.id!==THEME_PICKER_ELEMENT_ID&&(!active.parentNode||active.parentNode.id!==THEMES_ELEMENT_ID)&&(!related||(related.id!==THEME_PICKER_ELEMENT_ID&&(!related.parentNode||related.parentNode.id!==THEMES_ELEMENT_ID)))){hideThemeButtonState()}}themePicker.onclick=switchThemeButtonState;themePicker.onblur=handleThemeButtonsBlur;availableThemes.forEach(function(item){var but=document.createElement("button");but.textContent=item;but.onclick=function(){switchTheme(window.currentTheme,window.mainTheme,item,true);useSystemTheme(false)};but.onblur=handleThemeButtonsBlur;themeChoices.appendChild(but)})}());(function(){"use strict";window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:function(){return document.getElementById("search")},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:function(){if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},focus:function(){searchState.input.focus()},defocus:function(){searchState.input.blur()},showResults:function(search){if(search===null||typeof search==='undefined'){search=searchState.outputElement()}addClass(main,"hidden");removeClass(search,"hidden");searchState.mouseMovedAfterSearch=false;document.title=searchState.title},hideResults:function(search){if(search===null||typeof search==='undefined'){search=searchState.outputElement()}addClass(search,"hidden");removeClass(main,"hidden");document.title=searchState.titleBeforeSearch;if(searchState.browserSupportsHistoryApi()){history.replaceState("",window.currentCrate+" - Rust",getNakedUrl()+window.location.hash)}},getQueryStringParams:function(){var params={};window.location.search.substring(1).split("&").map(function(s){var pair=s.split("=");params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},putBackSearch:function(search_input){var search=searchState.outputElement();if(search_input.value!==""&&hasClass(search,"hidden")){searchState.showResults(search);if(searchState.browserSupportsHistoryApi()){var extra="?search="+encodeURIComponent(search_input.value);history.replaceState(search_input.value,"",getNakedUrl()+extra+window.location.hash)}document.title=searchState.title}},browserSupportsHistoryApi:function(){return window.history&&typeof window.history.pushState==="function"},setup:function(){var search_input=searchState.input;if(!searchState.input){return}function loadScript(url){var script=document.createElement('script');script.src=url;document.head.append(script)}var searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(window.searchJS);loadScript(window.searchIndexJS)}}search_input.addEventListener("focus",function(){searchState.putBackSearch(this);search_input.origPlaceholder=searchState.input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});search_input.addEventListener("blur",function(){search_input.placeholder=searchState.input.origPlaceholder});search_input.removeAttribute('disabled');searchState.addCrateDropdown(window.ALL_CRATES);var params=searchState.getQueryStringParams();if(params.search!==undefined){var search=searchState.outputElement();search.innerHTML="

    "+searchState.loadingText+"

    ";searchState.showResults(search);loadSearch()}},addCrateDropdown:function(crates){var elem=document.getElementById("crate-search");if(!elem){return}var savedCrate=getSettingValue("saved-filter-crate");for(var i=0,len=crates.length;i0){return tmp}}return null}function showSidebar(){var elems=document.getElementsByClassName("sidebar-elems")[0];if(elems){addClass(elems,"show-it")}var sidebar=document.getElementsByClassName("sidebar")[0];if(sidebar){addClass(sidebar,"mobile");var filler=document.getElementById("sidebar-filler");if(!filler){var div=document.createElement("div");div.id="sidebar-filler";sidebar.appendChild(div)}}}function hideSidebar(){var elems=document.getElementsByClassName("sidebar-elems")[0];if(elems){removeClass(elems,"show-it")}var sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"mobile");var filler=document.getElementById("sidebar-filler");if(filler){filler.remove()}document.getElementsByTagName("body")[0].style.marginTop=""}var toggleAllDocsId="toggle-all-docs";var main=document.getElementById("main");var savedHash="";function handleHashes(ev){var elem;var search=searchState.outputElement();if(ev!==null&&search&&!hasClass(search,"hidden")&&ev.newURL){searchState.hideResults(search);var hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(searchState.browserSupportsHistoryApi()){history.replaceState(hash,"",getNakedUrl()+window.location.search+"#"+hash)}elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}if(savedHash!==window.location.hash){savedHash=window.location.hash;if(savedHash.length===0){return}expandSection(savedHash.slice(1))}}function onHashChange(ev){hideSidebar();handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function getHelpElement(build){if(build){buildHelperPopup()}return document.getElementById("help")}function displayHelp(display,ev,help){if(display){help=help?help:getHelpElement(true);if(hasClass(help,"hidden")){ev.preventDefault();removeClass(help,"hidden");addClass(document.body,"blur")}}else{help=help?help:getHelpElement(false);if(help&&!hasClass(help,"hidden")){ev.preventDefault();addClass(help,"hidden");removeClass(document.body,"blur")}}}function handleEscape(ev){var help=getHelpElement(false);var search=searchState.outputElement();if(help&&!hasClass(help,"hidden")){displayHelp(false,ev,help)}else if(search&&!hasClass(search,"hidden")){searchState.clearInputTimeout();ev.preventDefault();searchState.hideResults(search)}searchState.defocus();hideThemeButtonState()}var disableShortcuts=getSettingValue("disable-shortcuts")==="true";function handleShortcut(ev){if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":displayHelp(false,ev);ev.preventDefault();searchState.focus();break;case"+":case"-":ev.preventDefault();toggleAllDocs();break;case"?":displayHelp(true,ev);break;case"t":case"T":displayHelp(false,ev);ev.preventDefault();var themePicker=getThemePickerElement();themePicker.click();themePicker.focus();break;default:if(getThemePickerElement().parentNode.contains(ev.target)){handleThemeKeyDown(ev)}}}}function handleThemeKeyDown(ev){var active=document.activeElement;var themes=getThemesElement();switch(getVirtualKey(ev)){case"ArrowUp":ev.preventDefault();if(active.previousElementSibling&&ev.target.id!==THEME_PICKER_ELEMENT_ID){active.previousElementSibling.focus()}else{showThemeButtonState();themes.lastElementChild.focus()}break;case"ArrowDown":ev.preventDefault();if(active.nextElementSibling&&ev.target.id!==THEME_PICKER_ELEMENT_ID){active.nextElementSibling.focus()}else{showThemeButtonState();themes.firstElementChild.focus()}break;case"Enter":case"Return":case"Space":if(ev.target.id===THEME_PICKER_ELEMENT_ID&&themes.style.display==="none"){ev.preventDefault();showThemeButtonState();themes.firstElementChild.focus()}break;case"Home":ev.preventDefault();themes.firstElementChild.focus();break;case"End":ev.preventDefault();themes.lastElementChild.focus();break}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);(function(){var x=document.getElementsByClassName("version-selector");if(x.length>0){x[0].onchange=function(){var i,match,url=document.location.href,stripped="",len=window.rootPath.match(/\.\.\//g).length+1;for(i=0;i .in-band > .trait").textContent;var baseIdName="impl-"+traitName+"-";var libs=Object.getOwnPropertyNames(imp);for(var i=0,llength=libs.length;i0){this.className+=" "+className}else{this.className=className}}}}if(!DOMTokenList.prototype.remove){DOMTokenList.prototype.remove=function(className){if(className&&this.className){this.className=(" "+this.className+" ").replace(" "+className+" "," ").trim()}}}(function(){var rustdocVars=document.getElementById("rustdoc-vars");if(rustdocVars){window.rootPath=rustdocVars.attributes["data-root-path"].value;window.currentCrate=rustdocVars.attributes["data-current-crate"].value;window.searchJS=rustdocVars.attributes["data-search-js"].value;window.searchIndexJS=rustdocVars.attributes["data-search-index-js"].value}var sidebarVars=document.getElementById("sidebar-vars");if(sidebarVars){window.sidebarCurrent={name:sidebarVars.attributes["data-name"].value,ty:sidebarVars.attributes["data-ty"].value,relpath:sidebarVars.attributes["data-relpath"].value,}}}());function getVirtualKey(ev){if("key"in ev&&typeof ev.key!="undefined"){return ev.key}var c=ev.charCode||ev.keyCode;if(c==27){return"Escape"}return String.fromCharCode(c)}var THEME_PICKER_ELEMENT_ID="theme-picker";var THEMES_ELEMENT_ID="theme-choices";function getThemesElement(){return document.getElementById(THEMES_ELEMENT_ID)}function getThemePickerElement(){return document.getElementById(THEME_PICKER_ELEMENT_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function showThemeButtonState(){var themePicker=getThemePickerElement();var themeChoices=getThemesElement();themeChoices.style.display="block";themePicker.style.borderBottomRightRadius="0";themePicker.style.borderBottomLeftRadius="0"}function hideThemeButtonState(){var themePicker=getThemePickerElement();var themeChoices=getThemesElement();themeChoices.style.display="none";themePicker.style.borderBottomRightRadius="3px";themePicker.style.borderBottomLeftRadius="3px"}(function(){var themeChoices=getThemesElement();var themePicker=getThemePickerElement();var availableThemes=["ayu","dark","light"];function switchThemeButtonState(){if(themeChoices.style.display==="block"){hideThemeButtonState()}else{showThemeButtonState()}}function handleThemeButtonsBlur(e){var active=document.activeElement;var related=e.relatedTarget;if(active.id!==THEME_PICKER_ELEMENT_ID&&(!active.parentNode||active.parentNode.id!==THEMES_ELEMENT_ID)&&(!related||(related.id!==THEME_PICKER_ELEMENT_ID&&(!related.parentNode||related.parentNode.id!==THEMES_ELEMENT_ID)))){hideThemeButtonState()}}themePicker.onclick=switchThemeButtonState;themePicker.onblur=handleThemeButtonsBlur;availableThemes.forEach(function(item){var but=document.createElement("button");but.textContent=item;but.onclick=function(){switchTheme(window.currentTheme,window.mainTheme,item,true);useSystemTheme(false)};but.onblur=handleThemeButtonsBlur;themeChoices.appendChild(but)})}());(function(){"use strict";window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:function(){return document.getElementById("search")},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:function(){if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},focus:function(){searchState.input.focus()},defocus:function(){searchState.input.blur()},showResults:function(search){if(search===null||typeof search==='undefined'){search=searchState.outputElement()}addClass(main,"hidden");removeClass(search,"hidden");searchState.mouseMovedAfterSearch=false;document.title=searchState.title},hideResults:function(search){if(search===null||typeof search==='undefined'){search=searchState.outputElement()}addClass(search,"hidden");removeClass(main,"hidden");document.title=searchState.titleBeforeSearch;if(searchState.browserSupportsHistoryApi()){history.replaceState("",window.currentCrate+" - Rust",getNakedUrl()+window.location.hash)}},getQueryStringParams:function(){var params={};window.location.search.substring(1).split("&").map(function(s){var pair=s.split("=");params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},putBackSearch:function(search_input){var search=searchState.outputElement();if(search_input.value!==""&&hasClass(search,"hidden")){searchState.showResults(search);if(searchState.browserSupportsHistoryApi()){var extra="?search="+encodeURIComponent(search_input.value);history.replaceState(search_input.value,"",getNakedUrl()+extra+window.location.hash)}document.title=searchState.title}},browserSupportsHistoryApi:function(){return window.history&&typeof window.history.pushState==="function"},setup:function(){var search_input=searchState.input;if(!searchState.input){return}function loadScript(url){var script=document.createElement('script');script.src=url;document.head.append(script)}var searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(window.searchJS);loadScript(window.searchIndexJS)}}search_input.addEventListener("focus",function(){searchState.putBackSearch(this);search_input.origPlaceholder=searchState.input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});search_input.addEventListener("blur",function(){search_input.placeholder=searchState.input.origPlaceholder});search_input.removeAttribute('disabled');searchState.addCrateDropdown(window.ALL_CRATES);var params=searchState.getQueryStringParams();if(params.search!==undefined){var search=searchState.outputElement();search.innerHTML="

    "+searchState.loadingText+"

    ";searchState.showResults(search);loadSearch()}},addCrateDropdown:function(crates){var elem=document.getElementById("crate-search");if(!elem){return}var savedCrate=getSettingValue("saved-filter-crate");for(var i=0,len=crates.length;i0){return tmp}}return null}function showSidebar(){var elems=document.getElementsByClassName("sidebar-elems")[0];if(elems){addClass(elems,"show-it")}var sidebar=document.getElementsByClassName("sidebar")[0];if(sidebar){addClass(sidebar,"mobile");var filler=document.getElementById("sidebar-filler");if(!filler){var div=document.createElement("div");div.id="sidebar-filler";sidebar.appendChild(div)}}}function hideSidebar(){var elems=document.getElementsByClassName("sidebar-elems")[0];if(elems){removeClass(elems,"show-it")}var sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"mobile");var filler=document.getElementById("sidebar-filler");if(filler){filler.remove()}document.getElementsByTagName("body")[0].style.marginTop=""}var toggleAllDocsId="toggle-all-docs";var main=document.getElementById("main");var savedHash="";function handleHashes(ev){var elem;var search=searchState.outputElement();if(ev!==null&&search&&!hasClass(search,"hidden")&&ev.newURL){searchState.hideResults(search);var hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(searchState.browserSupportsHistoryApi()){history.replaceState(hash,"",getNakedUrl()+window.location.search+"#"+hash)}elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}if(savedHash!==window.location.hash){savedHash=window.location.hash;if(savedHash.length===0){return}expandSection(savedHash.slice(1))}}function onHashChange(ev){hideSidebar();handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function getHelpElement(build){if(build){buildHelperPopup()}return document.getElementById("help")}function displayHelp(display,ev,help){if(display){help=help?help:getHelpElement(true);if(hasClass(help,"hidden")){ev.preventDefault();removeClass(help,"hidden");addClass(document.body,"blur")}}else{help=help?help:getHelpElement(false);if(help&&!hasClass(help,"hidden")){ev.preventDefault();addClass(help,"hidden");removeClass(document.body,"blur")}}}function handleEscape(ev){var help=getHelpElement(false);var search=searchState.outputElement();if(help&&!hasClass(help,"hidden")){displayHelp(false,ev,help)}else if(search&&!hasClass(search,"hidden")){searchState.clearInputTimeout();ev.preventDefault();searchState.hideResults(search)}searchState.defocus();hideThemeButtonState()}var disableShortcuts=getSettingValue("disable-shortcuts")==="true";function handleShortcut(ev){if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":displayHelp(false,ev);ev.preventDefault();searchState.focus();break;case"+":case"-":ev.preventDefault();toggleAllDocs();break;case"?":displayHelp(true,ev);break;case"t":case"T":displayHelp(false,ev);ev.preventDefault();var themePicker=getThemePickerElement();themePicker.click();themePicker.focus();break;default:if(getThemePickerElement().parentNode.contains(ev.target)){handleThemeKeyDown(ev)}}}}function handleThemeKeyDown(ev){var active=document.activeElement;var themes=getThemesElement();switch(getVirtualKey(ev)){case"ArrowUp":ev.preventDefault();if(active.previousElementSibling&&ev.target.id!==THEME_PICKER_ELEMENT_ID){active.previousElementSibling.focus()}else{showThemeButtonState();themes.lastElementChild.focus()}break;case"ArrowDown":ev.preventDefault();if(active.nextElementSibling&&ev.target.id!==THEME_PICKER_ELEMENT_ID){active.nextElementSibling.focus()}else{showThemeButtonState();themes.firstElementChild.focus()}break;case"Enter":case"Return":case"Space":if(ev.target.id===THEME_PICKER_ELEMENT_ID&&themes.style.display==="none"){ev.preventDefault();showThemeButtonState();themes.firstElementChild.focus()}break;case"Home":ev.preventDefault();themes.firstElementChild.focus();break;case"End":ev.preventDefault();themes.lastElementChild.focus();break}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);(function(){var x=document.getElementsByClassName("version-selector");if(x.length>0){x[0].onchange=function(){var i,match,url=document.location.href,stripped="",len=window.rootPath.match(/\.\.\//g).length+1;for(i=0;i .in-band > .trait").textContent;var baseIdName="impl-"+traitName+"-";var libs=Object.getOwnPropertyNames(imp);for(var i=0,llength=libs.length;ithe rustdoc book.";var container=document.createElement("div");var shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["T","Focus the theme picker menu"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(function(x){return"
    "+x[0].split(" ").map(function(y,index){return(index&1)===0?""+y+"":" "+y+" "}).join("")+"
    "+x[1]+"
    "}).join("");var div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

    Keyboard Shortcuts

    "+shortcuts+"
    ";var infos=["Prefix searches with a type followed by a colon (e.g., fn:) to \ restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ enum, trait, type, macro, \ and const.","Search functions by type signature (e.g., vec -> usize or \ * -> vec)","Search multiple things at once by splitting your query with comma (e.g., \ str,u8 or String,struct:Vec,test)","You can look for items with an exact name by putting double quotes around \ - your request: \"string\"","Look for items inside another one by searching for a path: vec::Vec",].map(function(x){return"

    "+x+"

    "}).join("");var div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

    Search Tricks

    "+infos;container.appendChild(book_info);container.appendChild(div_shortcuts);container.appendChild(div_infos);popup.appendChild(container);insertAfter(popup,searchState.outputElement());buildHelperPopup=function(){}};onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){var reset_button_timeout=null;window.copy_path=function(but){var parent=but.parentElement;var path=[];onEach(parent.childNodes,function(child){if(child.tagName==='A'){path.push(child.textContent)}});var el=document.createElement('textarea');el.value=path.join('::');el.setAttribute('readonly','');el.style.position='absolute';el.style.left='-9999px';document.body.appendChild(el);el.select();document.execCommand('copy');document.body.removeChild(el);but.children[0].style.display='none';var tmp;if(but.childNodes.length<2){tmp=document.createTextNode('✓');but.appendChild(tmp)}else{onEachLazy(but.childNodes,function(e){if(e.nodeType===Node.TEXT_NODE){tmp=e;return true}});tmp.textContent='✓'}if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){tmp.textContent='';reset_button_timeout=null;but.children[0].style.display=""}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file + your request: \"string\"","Look for items inside another one by searching for a path: vec::Vec",].map(function(x){return"

    "+x+"

    "}).join("");var div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

    Search Tricks

    "+infos;container.appendChild(book_info);container.appendChild(div_shortcuts);container.appendChild(div_infos);var rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";var rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc 1.57.0-nightly (41dfaaa3c 2021-10-10)";rustdoc_version.appendChild(rustdoc_version_code);container.appendChild(rustdoc_version);popup.appendChild(container);insertAfter(popup,searchState.outputElement());buildHelperPopup=function(){}};onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){var reset_button_timeout=null;window.copy_path=function(but){var parent=but.parentElement;var path=[];onEach(parent.childNodes,function(child){if(child.tagName==='A'){path.push(child.textContent)}});var el=document.createElement('textarea');el.value=path.join('::');el.setAttribute('readonly','');el.style.position='absolute';el.style.left='-9999px';document.body.appendChild(el);el.select();document.execCommand('copy');document.body.removeChild(el);but.children[0].style.display='none';var tmp;if(but.childNodes.length<2){tmp=document.createTextNode('✓');but.appendChild(tmp)}else{onEachLazy(but.childNodes,function(e){if(e.nodeType===Node.TEXT_NODE){tmp=e;return true}});tmp.textContent='✓'}if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){tmp.textContent='';reset_button_timeout=null;but.children[0].style.display=""}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file diff --git a/rustdoc.css b/rustdoc.css index 29c1a7eb5..bced0db9f 100644 --- a/rustdoc.css +++ b/rustdoc.css @@ -1 +1 @@ - @font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular.woff2") format("woff2"),url("FiraSans-Regular.woff") format('woff');font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium.woff2") format("woff2"),url("FiraSans-Medium.woff") format('woff');font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular.ttf.woff2") format("woff2"),url("SourceSerif4-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It.ttf.woff2") format("woff2"),url("SourceSerif4-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold.ttf.woff2") format("woff2"),url("SourceSerif4-Bold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular.ttf.woff2") format("woff2"),url("SourceCodePro-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It.ttf.woff2") format("woff2"),url("SourceCodePro-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold.ttf.woff2") format("woff2"),url("SourceCodePro-Semibold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Noto Sans KR';src:url("noto-sans-kr-v13-korean-regular.woff") format("woff");font-display:swap;unicode-range:U+A960-A97F,U+AC00-D7AF,U+D7B0-D7FF;}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}html{content:"";}@media (prefers-color-scheme:light){html{content:"light";}}@media (prefers-color-scheme:dark){html{content:"dark";}}body{font:16px/1.4 "Source Serif 4","Noto Sans KR",serif;margin:0;position:relative;padding:10px 15px 20px 15px;-webkit-font-feature-settings:"kern","liga";-moz-font-feature-settings:"kern","liga";font-feature-settings:"kern","liga";}h1{font-size:1.5em;}h2{font-size:1.4em;}h3{font-size:1.3em;}h1,h2,h3,h4{font-weight:500;margin:20px 0 15px 0;padding-bottom:6px;}h1.fqn{display:flex;border-bottom:1px dashed;margin-top:0;padding-left:1px;}h1.fqn>.in-band>a:hover{text-decoration:underline;}h2,h3,h4{border-bottom:1px solid;}h3.code-header,h4.code-header{font-size:1em;font-weight:600;border:none;padding:0;margin:0;}.impl,.impl-items .method,.methods .method,.impl-items .type,.methods .type,.impl-items .associatedconstant,.methods .associatedconstant,.impl-items .associatedtype,.methods .associatedtype{flex-basis:100%;font-weight:600;margin-top:16px;margin-bottom:10px;position:relative;}.impl,.method.trait-impl,.type.trait-impl,.associatedconstant.trait-impl,.associatedtype.trait-impl{padding-left:15px;}div.impl-items>div{padding-left:0;}h1,h2,h3,h4,.sidebar,a.source,.search-input,.search-results .result-name,.content table td:first-child>a,.item-left>a,div.item-list .out-of-band,span.since,#source-sidebar,#sidebar-toggle,details.rustdoc-toggle>summary::before,details.undocumented>summary::before,div.impl-items>div:not(.docblock):not(.item-info),.content ul.crate a.crate,a.srclink,#main>ul.docblock>li>a{font-family:"Fira Sans",Arial,sans-serif;}.content ul.crate a.crate{font-size:16px/1.6;}ol,ul{padding-left:25px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.6em;}p{margin:0 0 .6em 0;}summary{outline:none;}td,th{padding:0;}table{border-collapse:collapse;}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;}details:not(.rustdoc-toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.1em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;}.type-decl pre{overflow-x:auto;}.source .content pre{padding:20px;}img{max-width:100%;}li{position:relative;}.source .content{margin-top:50px;max-width:none;overflow:visible;margin-left:0px;}nav.sub{font-size:16px;text-transform:uppercase;}.sidebar{width:200px;position:fixed;left:0;top:0;bottom:0;overflow:auto;}*{scrollbar-width:initial;}.sidebar{scrollbar-width:thin;}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;}.sidebar .block>ul>li{margin-right:-10px;}.content,nav{max-width:960px;}.hidden{display:none !important;}.logo-container{height:100px;width:100px;position:relative;margin:20px auto;display:block;margin-top:10px;}.logo-container>img{max-width:100px;max-height:100px;height:100%;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:block;}.sidebar .location{border:1px solid;font-size:17px;margin:30px 10px 20px 10px;text-align:center;word-wrap:break-word;font-weight:inherit;padding:0;}.sidebar .version{font-size:15px;text-align:center;border-bottom:1px solid;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;}.location:empty{border:none;}.location a:first-of-type{font-weight:500;}.location a:hover{text-decoration:underline;}.block{padding:0;margin-bottom:14px;}.block h2,.block h3{text-align:center;}.block ul,.block li{margin:0 10px;padding:0;list-style:none;}.block a{display:block;text-overflow:ellipsis;overflow:hidden;line-height:15px;padding:7px 5px;font-size:14px;font-weight:300;transition:border 500ms ease-out;}.sidebar-title{border-top:1px solid;border-bottom:1px solid;text-align:center;font-size:17px;margin-bottom:5px;font-weight:inherit;padding:0;}.sidebar-links{margin-bottom:15px;}.sidebar-links>a{padding-left:10px;width:100%;}.sidebar-menu{display:none;}.content{padding:15px 0;}.source .content pre.rust{white-space:pre;overflow:auto;padding-left:0;}.rustdoc .example-wrap{display:inline-flex;margin-bottom:10px;}.example-wrap{position:relative;width:100%;}.example-wrap>pre.line-number{overflow:initial;border:1px solid;padding:13px 8px;text-align:right;border-top-left-radius:5px;border-bottom-left-radius:5px;}.example-wrap>pre.rust a:hover{text-decoration:underline;}.rustdoc:not(.source) .example-wrap>pre:not(.line-number){width:100%;overflow-x:auto;}.rustdoc .example-wrap>pre{margin:0;}#search{margin-left:230px;position:relative;}#results>table{width:100%;table-layout:fixed;}.content>.example-wrap pre.line-numbers{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.line-numbers span{cursor:pointer;}.docblock-short{overflow-wrap:anywhere;}.docblock-short p{display:inline;}.docblock-short p{overflow:hidden;text-overflow:ellipsis;margin:0;}.docblock>:not(pre)>code,.docblock-short>:not(pre)>code{white-space:pre-wrap;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5{border-bottom:1px solid;}.top-doc .docblock h1{font-size:1.3em;}.top-doc .docblock h2{font-size:1.15em;}.top-doc .docblock h3,.top-doc .docblock h4,.top-doc .docblock h5{font-size:1em;}.docblock h1{font-size:1em;}.docblock h2{font-size:0.95em;}.docblock h3,.docblock h4,.docblock h5{font-size:0.9em;}.docblock{margin-left:24px;position:relative;}.content .out-of-band{flex-grow:0;text-align:right;font-size:23px;margin:0px;padding:0 0 0 12px;font-weight:normal;}.method>.code-header,.trait-impl>.code-header,.invisible>.code-header{max-width:calc(100% - 41px);display:block;}.invisible{width:100%;display:inline-block;}.content .in-band{flex-grow:1;margin:0px;padding:0px;}.in-band>code,.in-band>.code-header{display:inline-block;}#main{position:relative;}#main>.since{top:inherit;font-family:"Fira Sans",Arial,sans-serif;}.content table:not(.table-display){border-spacing:0 5px;}.content td{vertical-align:top;}.content td:first-child{padding-right:20px;}.content td p:first-child{margin-top:0;}.content td h1,.content td h2{margin-left:0;font-size:1.1em;}.content tr:first-child td{border-top:0;}.docblock table{margin:.5em 0;width:calc(100% - 2px);overflow-x:auto;display:block;}.docblock table td{padding:.5em;border:1px dashed;}.docblock table th{padding:.5em;text-align:left;border:1px solid;}.fields+table{margin-bottom:1em;}.content .item-list{list-style-type:none;padding:0;}.content .multi-column{-moz-column-count:5;-moz-column-gap:2.5em;-webkit-column-count:5;-webkit-column-gap:2.5em;column-count:5;column-gap:2.5em;}.content .multi-column li{width:100%;display:inline-block;}.content>.methods>.method{font-size:1em;position:relative;}.content .method .where,.content .fn .where,.content .where.fmt-newline{display:block;font-size:0.8em;}.content .methods>div:not(.notable-traits):not(.method){margin-left:40px;margin-bottom:15px;}.content .docblock>.impl-items{margin-left:20px;margin-top:-34px;}.content .docblock>.impl-items .table-display{margin:0;}.content .docblock>.impl-items table td{padding:0;}.content .docblock>.impl-items .table-display,.impl-items table td{border:none;}.content .item-info code{font-size:90%;}.content .item-info{position:relative;margin-left:33px;}.sub-variant>div>.item-info{margin-top:initial;}.content .item-info::before{content:'⬑';font-size:25px;position:absolute;top:-6px;left:-19px;}.content .impl-items .method,.content .impl-items>.type,.impl-items>.associatedconstant,.impl-items>.associatedtype,.content .impl-items details>summary>.type,.impl-items details>summary>.associatedconstant,.impl-items details>summary>.associatedtype{margin-left:20px;}.content .impl-items .docblock,.content .impl-items .item-info{margin-bottom:.6em;}.content .impl-items>.item-info{margin-left:40px;}.methods>.item-info,.content .impl-items>.item-info{margin-top:-8px;}.impl-items{flex-basis:100%;}#main>.item-info{margin-top:0;}nav:not(.sidebar){border-bottom:1px solid;padding-bottom:10px;margin-bottom:10px;}nav.main{padding:20px 0;text-align:center;}nav.main .current{border-top:1px solid;border-bottom:1px solid;}nav.main .separator{border:1px solid;display:inline-block;height:23px;margin:0 20px;}nav.sum{text-align:right;}nav.sub form{display:inline;}nav.sub,.content{margin-left:230px;}a{text-decoration:none;background:transparent;}.small-section-header{display:flex;justify-content:space-between;position:relative;}.small-section-header:hover>.anchor{display:initial;}.in-band:hover>.anchor,.impl:hover>.anchor,.method.trait-impl:hover>.anchor,.type.trait-impl:hover>.anchor,.associatedconstant.trait-impl:hover>.anchor,.associatedtype.trait-impl:hover>.anchor{display:inline-block;position:absolute;}.anchor{display:none;position:absolute;left:0;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.anchor::before{content:'§';}.docblock a:not(.srclink):not(.test-arrow):hover,.docblock-short a:not(.srclink):not(.test-arrow):hover,.item-info a{text-decoration:underline;}.invisible>.srclink,.method>.code-header+.srclink{position:absolute;top:0;right:0;font-size:17px;font-weight:normal;}.block a.current.crate{font-weight:500;}.item-table{display:grid;column-gap:1.2rem;row-gap:0.0rem;grid-template-columns:auto 1fr;justify-items:start;}.item-left,.item-right{display:block;}.item-left{grid-column:1;}.item-right{grid-column:2;}.search-container{position:relative;}.search-container>div{display:inline-flex;width:calc(100% - 63px);}#crate-search{min-width:115px;margin-top:5px;padding:6px;padding-right:19px;flex:none;border:0;border-right:0;border-radius:4px 0 0 4px;outline:none;cursor:pointer;border-right:1px solid;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;text-overflow:"";background-repeat:no-repeat;background-color:transparent;background-size:20px;background-position:calc(100% - 1px) 56%;}.search-container>.top-button{position:absolute;right:0;top:10px;}.search-input{-moz-box-sizing:border-box !important;box-sizing:border-box !important;outline:none;border:none;border-radius:1px;margin-top:5px;padding:10px 16px;font-size:17px;transition:border-color 300ms ease;transition:border-radius 300ms ease-in-out;transition:box-shadow 300ms ease-in-out;width:100%;}#crate-search+.search-input{border-radius:0 1px 1px 0;width:calc(100% - 32px);}.search-input:focus{border-radius:2px;border:0;outline:0;}.search-results{display:none;padding-bottom:2em;}.search-results.active{display:block;clear:both;}.search-results .desc>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;}.search-results>a{display:block;width:100%;margin-left:2px;margin-right:2px;border-bottom:1px solid #aaa3;}.search-results>a>div{display:flex;flex-flow:row wrap;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:50%;}.search-results .result-name{padding-right:1em;}.search-results .result-name>span{display:inline-block;margin:0;font-weight:normal;}body.blur>:not(#help){filter:blur(8px);-webkit-filter:blur(8px);opacity:.7;}#help{width:100%;height:100vh;position:fixed;top:0;left:0;display:flex;justify-content:center;align-items:center;}#help>div{flex:0 0 auto;box-shadow:0 0 6px rgba(0,0,0,.2);width:550px;height:auto;border:1px solid;}#help dt{float:left;clear:left;display:block;margin-right:0.5rem;}#help>div>span{text-align:center;display:block;margin:10px 0;font-size:18px;border-bottom:1px solid #ccc;padding-bottom:4px;margin-bottom:6px;}#help dd{margin:5px 35px;}#help .infos{padding-left:0;}#help h1,#help h2{margin-top:0;}#help>div div{width:50%;float:left;padding:0 20px 20px 17px;;}.item-info .stab{display:table;}.stab{border-width:1px;border-style:solid;padding:3px;margin-bottom:5px;font-size:90%;font-weight:normal;}.stab p{display:inline;}.stab .emoji{font-size:1.5em;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.module-item .stab,.import-item .stab{border-radius:3px;display:inline-block;font-size:80%;line-height:1.2;margin-bottom:0;margin-left:.3em;padding:2px;vertical-align:text-bottom;}.module-item.unstable,.import-item.unstable{opacity:0.65;}.since{font-weight:normal;font-size:initial;}.impl-items .since,.impl .since,.methods .since{padding-left:12px;padding-right:2px;position:initial;}.impl-items .srclink,.impl .srclink,.methods .srclink{font-size:17px;font-weight:normal;}.rightside{float:right;}.has-srclink{font-size:16px;margin-bottom:12px;justify-content:space-between;}.variants_table{width:100%;}.variants_table tbody tr td:first-child{width:1%;}td.summary-column{width:100%;}.summary{padding-right:0px;}pre.rust .question-mark{font-weight:bold;}a.test-arrow{display:inline-block;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:130%;top:5px;right:5px;z-index:1;}a.test-arrow:hover{text-decoration:none;}.section-header:hover a:before{position:absolute;left:-25px;padding-right:10px;content:'\2002\00a7\2002';}.section-header:hover a{text-decoration:none;}.section-header a{color:inherit;}.code-attribute{font-weight:300;}.since+.srclink{padding-left:10px;}.item-spacer{width:100%;height:12px;}.out-of-band>span.since{position:initial;font-size:20px;margin-right:5px;}.sub-variant,.sub-variant>h3{margin-top:0px !important;padding-top:1px;}#main .sub-variant>h3{font-size:15px;margin-left:25px;margin-bottom:5px;}.sub-variant>div{margin-left:20px;margin-bottom:10px;}.sub-variant>div>span{display:block;position:relative;}.toggle-label{display:inline-block;margin-left:4px;margin-top:3px;}.docblock>.section-header:first-child{margin-left:15px;margin-top:0;}.docblock>.section-header:first-child:hover>a:before{left:-10px;}:target>code,:target>.code-header{opacity:1;}:target{padding-right:3px;}.information{position:absolute;left:-25px;margin-top:7px;z-index:1;}.tooltip{position:relative;display:inline-block;cursor:pointer;}.tooltip::after{display:none;text-align:center;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;font-size:16px;}.tooltip.ignore::after{content:"This example is not tested";}.tooltip.compile_fail::after{content:"This example deliberately fails to compile";}.tooltip.should_panic::after{content:"This example panics";}.tooltip.edition::after{content:"This code runs with edition " attr(data-edition);}.tooltip::before{content:" ";position:absolute;top:50%;left:16px;margin-top:-5px;border-width:5px;border-style:solid;display:none;}.tooltip:hover::before,.tooltip:hover::after{display:inline;}.tooltip.compile_fail,.tooltip.should_panic,.tooltip.ignore{font-weight:bold;font-size:20px;}.notable-traits-tooltip{display:inline-block;cursor:pointer;}.notable-traits:hover .notable-traits-tooltiptext,.notable-traits .notable-traits-tooltiptext.force-tooltip{display:inline-block;}.notable-traits .notable-traits-tooltiptext{display:none;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;z-index:10;font-size:16px;cursor:default;position:absolute;border:1px solid;}.notable-traits-tooltip::after{content:"\00a0\00a0\00a0";}.notable-traits .notable,.notable-traits .docblock{margin:0;}.notable-traits .notable{margin:0;margin-bottom:13px;font-size:19px;font-weight:600;}.notable-traits .docblock code.content{margin:0;padding:0;font-size:20px;}pre.rust.rust-example-rendered{position:relative;}pre.rust{tab-size:4;-moz-tab-size:4;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#titles{height:35px;}#titles>button{float:left;width:33.3%;text-align:center;font-size:18px;cursor:pointer;border:0;border-top:2px solid;}#titles>button:not(:last-child){margin-right:1px;width:calc(33.3% - 1px);}#titles>button>div.count{display:inline-block;font-size:16px;}.notable-traits{cursor:pointer;z-index:2;margin-left:5px;}#all-types{text-align:center;border:1px solid;margin:0 10px;margin-bottom:10px;display:block;border-radius:7px;}#all-types>p{margin:5px 0;}#sidebar-toggle{position:fixed;top:30px;left:300px;z-index:10;padding:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;cursor:pointer;font-weight:bold;transition:left .5s;font-size:1.2em;border:1px solid;border-left:0;}#source-sidebar{position:fixed;top:0;bottom:0;left:0;width:300px;z-index:1;overflow:auto;transition:left .5s;border-right:1px solid;}#source-sidebar>.title{font-size:1.5em;text-align:center;border-bottom:1px solid;margin-bottom:6px;}.theme-picker{position:absolute;left:211px;top:19px;}.theme-picker button{outline:none;}#settings-menu,#help-button{position:absolute;top:10px;}#settings-menu{right:0;outline:none;}#theme-picker,#settings-menu,#help-button,#copy-path{padding:4px;width:27px;height:29px;border:1px solid;border-radius:3px;cursor:pointer;}#help-button{right:30px;font-family:"Fira Sans",Arial,sans-serif;text-align:center;font-size:17px;padding-top:2px;}#copy-path{background:initial;margin-left:10px;padding:0;padding-left:2px;border:0;}#theme-choices{display:none;position:absolute;left:0;top:28px;border:1px solid;border-radius:3px;z-index:1;cursor:pointer;}#theme-choices>button{border:none;width:100%;padding:4px 8px;text-align:center;background:rgba(0,0,0,0);}#theme-choices>button:not(:first-child){border-top:1px solid;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px;border-radius:3px;box-shadow:inset 0 -1px 0;cursor:default;}.hidden-by-impl-hider,.hidden-by-usual-hider{display:none !important;}#implementations-list>h3>span.in-band{width:100%;}.table-display{width:100%;border:0;border-collapse:collapse;border-spacing:0;font-size:16px;}.table-display tr td:first-child{padding-right:0;}.table-display tr td:last-child{float:right;}.table-display .out-of-band{position:relative;font-size:19px;display:block;}#implementors-list>.impl-items .table-display .out-of-band{font-size:17px;}.table-display td:hover .anchor{display:block;top:2px;left:-5px;}#main>ul{padding-left:10px;}#main>ul>li{list-style:none;}.non-exhaustive{margin-bottom:1em;}div.children{padding-left:27px;display:none;}div.name{cursor:pointer;position:relative;margin-left:16px;}div.files>a{display:block;padding:0 3px;}div.files>a:hover,div.name:hover{background-color:#a14b4b;}div.name.expand+.children{display:block;}div.name::before{content:"\25B6";padding-left:4px;font-size:0.7em;position:absolute;left:-16px;top:4px;}div.name.expand::before{transform:rotate(90deg);left:-15px;top:2px;}details.rustdoc-toggle>summary.hideme{cursor:pointer;}details.rustdoc-toggle>summary,details.undocumented>summary{list-style:none;}details.rustdoc-toggle>summary::-webkit-details-marker,details.rustdoc-toggle>summary::marker,details.undocumented>summary::-webkit-details-marker,details.undocumented>summary::marker{display:none;}details.rustdoc-toggle>summary.hideme>span{margin-left:9px;}details.rustdoc-toggle>summary::before{content:"";cursor:pointer;width:17px;height:max(17px,1.1em);background-repeat:no-repeat;background-position:top left;display:inline-block;vertical-align:middle;opacity:.5;}details.rustdoc-toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.rustdoc-toggle>summary.hideme::after{content:"";}details.rustdoc-toggle>summary:focus::before,details.rustdoc-toggle>summary:hover::before{opacity:1;}details.rustdoc-toggle.top-doc>summary,details.rustdoc-toggle.top-doc>summary::before,details.rustdoc-toggle.non-exhaustive>summary,details.rustdoc-toggle.non-exhaustive>summary::before{font-family:'Fira Sans';font-size:16px;}details.non-exhaustive{margin-bottom:8px;}details.rustdoc-toggle>summary.hideme::before{position:relative;}details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-23px;top:3px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before,.undocumented>details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-2px;}details.rustdoc-toggle[open] >summary.hideme{position:absolute;}details.rustdoc-toggle,details.undocumented{position:relative;}details.rustdoc-toggle[open] >summary.hideme>span{display:none;}details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{width:17px;height:max(17px,1.1em);background-repeat:no-repeat;background-position:top left;display:inline-block;content:"";}details.rustdoc-toggle[open] >summary::after,details.rustdoc-toggle[open] >summary.hideme::after{content:"Collapse";}details.undocumented>summary::before{padding-left:17px;height:max(17px,1.1em);background-repeat:no-repeat;background-position:top left;content:"Show hidden undocumented items";cursor:pointer;font-size:16px;font-weight:300;opacity:.5;}details.undocumented>summary:focus::before,details.undocumented>summary:hover::before{opacity:1;}details.undocumented[open] >summary::before{padding-left:17px;height:max(17px,1.1em);background-repeat:no-repeat background-position:top left;content:"Hide undocumented items";}@media (min-width:701px){.docblock>.information:first-child>.tooltip{margin-top:16px;}}@media (max-width:700px){body{padding-top:0px;}.rustdoc>.sidebar{height:45px;min-height:40px;margin:0;margin-left:-15px;padding:0 15px;position:static;z-index:11;}.sidebar>.location{float:right;margin:0px;margin-top:2px;padding:3px 10px 1px 10px;min-height:39px;background:inherit;text-align:left;font-size:24px;}.sidebar .location:empty{padding:0;}.sidebar .logo-container{width:35px;height:35px;margin-top:5px;margin-bottom:5px;float:left;margin-left:50px;}.sidebar .logo-container>img{max-width:35px;max-height:35px;}.sidebar-menu{position:fixed;z-index:10;font-size:2rem;cursor:pointer;width:45px;left:0;text-align:center;display:block;border-bottom:1px solid;border-right:1px solid;height:45px;}.rustdoc.source>.sidebar>.sidebar-menu{display:none;}.sidebar-elems{position:fixed;z-index:1;top:45px;bottom:0;width:246px;left:-246px;overflow-y:auto;border-right:1px solid;}.sidebar>.block.version{overflow:hidden;border-bottom:none;margin-bottom:0;height:100%;padding-left:12px;}.sidebar>.block.version>div.narrow-helper{float:left;width:1px;height:100%;}.sidebar>.block.version>p{margin:0;min-width:55px;display:flex;align-items:center;height:100%;}nav.sub{width:calc(100% - 32px);float:right;}.content{margin-left:0px;}#main,#search{margin-top:45px;padding:0;}#search{margin-left:0;}.anchor{display:none !important;}.theme-picker{left:10px;top:54px;z-index:1;}.notable-traits{position:absolute;left:-22px;top:24px;}#titles>button>div.count{float:left;width:100%;}#titles{height:50px;}.sidebar.mobile{position:fixed;width:100%;margin-left:0;background-color:rgba(0,0,0,0);height:100%;}.sidebar.mobile>div.version{overflow:hidden;max-height:33px;}.sidebar{width:calc(100% + 30px);}.show-it,.sidebar-elems:focus-within{z-index:2;left:0;}.show-it>.block.items{margin:8px 0;}.show-it>.block.items>ul{margin:0;}.show-it>.block.items>ul>li{text-align:center;margin:2px 0;}.show-it>.block.items>ul>li>a{font-size:21px;}#sidebar-filler{position:fixed;left:45px;width:calc(100% - 45px);top:0;height:45px;z-index:-1;border-bottom:1px solid;}#main>details.rustdoc-toggle>summary::before,#main>div>details.rustdoc-toggle>summary::before{left:-11px;}#all-types{margin:10px;}#sidebar-toggle{top:100px;width:30px;font-size:1.5rem;text-align:center;padding:0;}#source-sidebar{z-index:11;}#main>.line-numbers{margin-top:0;}.notable-traits .notable-traits-tooltiptext{left:0;top:100%;}#help-button{display:none;}.item-table{display:flex;flex-flow:column wrap;}.item-left,.item-right{width:100%;}.search-container>div{width:calc(100% - 32px);}.search-results>a{border-bottom:1px solid #aaa9;padding:5px 0px;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:100%;}.search-results div.desc,.search-results .result-description,.item-right{padding-left:2em;}}@media print{nav.sub,.content .out-of-band{display:none;}}@media (max-width:464px){#titles,#titles>button{height:73px;}#main,#search{margin-top:100px;}#main>table:not(.table-display) td{word-break:break-word;width:50%;}.search-container>div{display:block;width:calc(100% - 37px);}#crate-search{width:100%;border-radius:4px;border:0;}#crate-search+.search-input{width:calc(100% + 71px);margin-left:-36px;}#theme-picker,#settings-menu{padding:5px;width:31px;height:31px;}#theme-picker{margin-top:-2px;}#settings-menu{top:7px;}.docblock{margin-left:12px;}}details.undocumented[open] >summary::before,details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{background-image:url(toggle-minus.svg);}details.undocumented>summary::before,details.rustdoc-toggle>summary::before{background-image:url(toggle-plus.svg);} \ No newline at end of file + @font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular.woff2") format("woff2"),url("FiraSans-Regular.woff") format('woff');font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium.woff2") format("woff2"),url("FiraSans-Medium.woff") format('woff');font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular.ttf.woff2") format("woff2"),url("SourceSerif4-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It.ttf.woff2") format("woff2"),url("SourceSerif4-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold.ttf.woff2") format("woff2"),url("SourceSerif4-Bold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular.ttf.woff2") format("woff2"),url("SourceCodePro-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It.ttf.woff2") format("woff2"),url("SourceCodePro-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold.ttf.woff2") format("woff2"),url("SourceCodePro-Semibold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Noto Sans KR';src:url("noto-sans-kr-v13-korean-regular.woff") format("woff");font-display:swap;unicode-range:U+A960-A97F,U+AC00-D7AF,U+D7B0-D7FF;}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}html{content:"";}@media (prefers-color-scheme:light){html{content:"light";}}@media (prefers-color-scheme:dark){html{content:"dark";}}body{font:16px/1.4 "Source Serif 4","Noto Sans KR",serif;margin:0;position:relative;padding:10px 15px 20px 15px;-webkit-font-feature-settings:"kern","liga";-moz-font-feature-settings:"kern","liga";font-feature-settings:"kern","liga";}h1{font-size:1.5em;}h2{font-size:1.4em;}h3{font-size:1.3em;}h1,h2,h3,h4,h5,h6{font-weight:500;margin:20px 0 15px 0;padding-bottom:6px;}h1.fqn{display:flex;border-bottom:1px dashed;margin-top:0;padding-left:1px;}h1.fqn>.in-band>a:hover{text-decoration:underline;}h2,h3,h4{border-bottom:1px solid;}h3.code-header,h4.code-header{font-size:1em;font-weight:600;border:none;padding:0;margin:0;}.impl,.impl-items .method,.methods .method,.impl-items .type,.methods .type,.impl-items .associatedconstant,.methods .associatedconstant,.impl-items .associatedtype,.methods .associatedtype{flex-basis:100%;font-weight:600;margin-top:16px;margin-bottom:10px;position:relative;}.impl,.method.trait-impl,.type.trait-impl,.associatedconstant.trait-impl,.associatedtype.trait-impl{padding-left:15px;}div.impl-items>div{padding-left:0;}h1,h2,h3,h4,h5,h6,.sidebar,a.source,.search-input,.search-results .result-name,.content table td:first-child>a,.item-left>a,div.item-list .out-of-band,span.since,#source-sidebar,#sidebar-toggle,details.rustdoc-toggle>summary::before,details.undocumented>summary::before,div.impl-items>div:not(.docblock):not(.item-info),.content ul.crate a.crate,a.srclink,#main>ul.docblock>li>a{font-family:"Fira Sans",Arial,sans-serif;}.content ul.crate a.crate{font-size:16px/1.6;}ol,ul{padding-left:25px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.6em;}p{margin:0 0 .6em 0;}summary{outline:none;}td,th{padding:0;}table{border-collapse:collapse;}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;}details:not(.rustdoc-toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.1em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;}.type-decl pre{overflow-x:auto;}.source .content pre{padding:20px;}img{max-width:100%;}li{position:relative;}.source .content{margin-top:50px;max-width:none;overflow:visible;margin-left:0px;}nav.sub{font-size:16px;text-transform:uppercase;}.sidebar{width:200px;position:fixed;left:0;top:0;bottom:0;overflow:auto;}*{scrollbar-width:initial;}.sidebar{scrollbar-width:thin;}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;}.sidebar .block>ul>li{margin-right:-10px;}.content,nav{max-width:960px;}.hidden{display:none !important;}.logo-container{height:100px;width:100px;position:relative;margin:20px auto;display:block;margin-top:10px;}.logo-container>img{max-width:100px;max-height:100px;height:100%;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:block;}.sidebar .location{border:1px solid;font-size:17px;margin:30px 10px 20px 10px;text-align:center;word-wrap:break-word;font-weight:inherit;padding:0;}.sidebar .version{font-size:15px;text-align:center;border-bottom:1px solid;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;}.location:empty{border:none;}.location a:first-of-type{font-weight:500;}.location a:hover{text-decoration:underline;}.block{padding:0;margin-bottom:14px;}.block h2,.block h3{text-align:center;}.block ul,.block li{margin:0 10px;padding:0;list-style:none;}.block a{display:block;text-overflow:ellipsis;overflow:hidden;line-height:15px;padding:7px 5px;font-size:14px;font-weight:300;transition:border 500ms ease-out;}.sidebar-title{border-top:1px solid;border-bottom:1px solid;text-align:center;font-size:17px;margin-bottom:5px;font-weight:inherit;padding:0;}.sidebar-links{margin-bottom:15px;}.sidebar-links>a{padding-left:10px;width:100%;}.sidebar-menu{display:none;}.content{padding:15px 0;}.source .content pre.rust{white-space:pre;overflow:auto;padding-left:0;}.rustdoc .example-wrap{display:inline-flex;margin-bottom:10px;}.example-wrap{position:relative;width:100%;}.example-wrap>pre.line-number{overflow:initial;border:1px solid;padding:13px 8px;text-align:right;border-top-left-radius:5px;border-bottom-left-radius:5px;}.example-wrap>pre.rust a:hover{text-decoration:underline;}.rustdoc:not(.source) .example-wrap>pre:not(.line-number){width:100%;overflow-x:auto;}.rustdoc .example-wrap>pre{margin:0;}#search{margin-left:230px;position:relative;}#results>table{width:100%;table-layout:fixed;}.content>.example-wrap pre.line-numbers{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.line-numbers span{cursor:pointer;}.docblock-short{overflow-wrap:anywhere;}.docblock-short p{display:inline;}.docblock-short p{overflow:hidden;text-overflow:ellipsis;margin:0;}.docblock>:not(pre)>code,.docblock-short>:not(pre)>code{white-space:pre-wrap;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom:1px solid;}.top-doc .docblock h2{font-size:1.3em;}.top-doc .docblock h3{font-size:1.15em;}.top-doc .docblock h4,.top-doc .docblock h5,.top-doc .docblock h6{font-size:1em;}.docblock h5{font-size:1em;}.docblock h6{font-size:0.95em;}.docblock{margin-left:24px;position:relative;}.docblock>*{max-width:100%;overflow-x:auto;}.content .out-of-band{flex-grow:0;text-align:right;font-size:23px;margin:0px;padding:0 0 0 12px;font-weight:normal;}.method>.code-header,.trait-impl>.code-header,.invisible>.code-header{max-width:calc(100% - 41px);display:block;}.invisible{width:100%;display:inline-block;}.content .in-band{flex-grow:1;margin:0px;padding:0px;}.in-band>code,.in-band>.code-header{display:inline-block;}#main{position:relative;}#main>.since{top:inherit;font-family:"Fira Sans",Arial,sans-serif;}.content table:not(.table-display){border-spacing:0 5px;}.content td{vertical-align:top;}.content td:first-child{padding-right:20px;}.content td p:first-child{margin-top:0;}.content td h1,.content td h2{margin-left:0;font-size:1.1em;}.content tr:first-child td{border-top:0;}.docblock table{margin:.5em 0;width:calc(100% - 2px);overflow-x:auto;display:block;}.docblock table td{padding:.5em;border:1px dashed;}.docblock table th{padding:.5em;text-align:left;border:1px solid;}.fields+table{margin-bottom:1em;}.content .item-list{list-style-type:none;padding:0;}.content .multi-column{-moz-column-count:5;-moz-column-gap:2.5em;-webkit-column-count:5;-webkit-column-gap:2.5em;column-count:5;column-gap:2.5em;}.content .multi-column li{width:100%;display:inline-block;}.content>.methods>.method{font-size:1em;position:relative;}.content .method .where,.content .fn .where,.content .where.fmt-newline{display:block;font-size:0.8em;}.content .methods>div:not(.notable-traits):not(.method){margin-left:40px;margin-bottom:15px;}.content .docblock>.impl-items{margin-left:20px;margin-top:-34px;}.content .docblock>.impl-items .table-display{margin:0;}.content .docblock>.impl-items table td{padding:0;}.content .docblock>.impl-items .table-display,.impl-items table td{border:none;}.content .item-info code{font-size:90%;}.content .item-info{position:relative;margin-left:33px;}.sub-variant>div>.item-info{margin-top:initial;}.content .item-info::before{content:'⬑';font-size:25px;position:absolute;top:-6px;left:-19px;}.content .impl-items .method,.content .impl-items>.type,.impl-items>.associatedconstant,.impl-items>.associatedtype,.content .impl-items details>summary>.type,.impl-items details>summary>.associatedconstant,.impl-items details>summary>.associatedtype{margin-left:20px;}.content .impl-items .docblock,.content .impl-items .item-info{margin-bottom:.6em;}.content .impl-items>.item-info{margin-left:40px;}.methods>.item-info,.content .impl-items>.item-info{margin-top:-8px;}.impl-items{flex-basis:100%;}#main>.item-info{margin-top:0;}nav:not(.sidebar){border-bottom:1px solid;padding-bottom:10px;margin-bottom:10px;}nav.main{padding:20px 0;text-align:center;}nav.main .current{border-top:1px solid;border-bottom:1px solid;}nav.main .separator{border:1px solid;display:inline-block;height:23px;margin:0 20px;}nav.sum{text-align:right;}nav.sub form{display:inline;}nav.sub,.content{margin-left:230px;}a{text-decoration:none;background:transparent;}.small-section-header{display:flex;justify-content:space-between;position:relative;}.small-section-header:hover>.anchor{display:initial;}.in-band:hover>.anchor,.impl:hover>.anchor,.method.trait-impl:hover>.anchor,.type.trait-impl:hover>.anchor,.associatedconstant.trait-impl:hover>.anchor,.associatedtype.trait-impl:hover>.anchor{display:inline-block;position:absolute;}.anchor{display:none;position:absolute;left:0;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.anchor::before{content:'§';}.docblock a:not(.srclink):not(.test-arrow):hover,.docblock-short a:not(.srclink):not(.test-arrow):hover,.item-info a{text-decoration:underline;}.invisible>.srclink,.method>.code-header+.srclink{position:absolute;top:0;right:0;font-size:17px;font-weight:normal;}.block a.current.crate{font-weight:500;}.item-table{display:table-row;justify-items:start;}.item-row{display:table-row;}.item-left,.item-right{display:table-cell;}.item-left{padding-right:1.2rem;}.search-container{position:relative;}.search-container>div{display:inline-flex;width:calc(100% - 63px);}#crate-search{min-width:115px;margin-top:5px;padding:6px;padding-right:19px;flex:none;border:0;border-right:0;border-radius:4px 0 0 4px;outline:none;cursor:pointer;border-right:1px solid;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;text-overflow:"";background-repeat:no-repeat;background-color:transparent;background-size:20px;background-position:calc(100% - 1px) 56%;}.search-container>.top-button{position:absolute;right:0;top:10px;}.search-input{-moz-box-sizing:border-box !important;box-sizing:border-box !important;outline:none;border:none;border-radius:1px;margin-top:5px;padding:10px 16px;font-size:17px;transition:border-color 300ms ease;transition:border-radius 300ms ease-in-out;transition:box-shadow 300ms ease-in-out;width:100%;}#crate-search+.search-input{border-radius:0 1px 1px 0;width:calc(100% - 32px);}.search-input:focus{border-radius:2px;border:0;outline:0;}.search-results{display:none;padding-bottom:2em;}.search-results.active{display:block;clear:both;}.search-results .desc>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;}.search-results>a{display:block;width:100%;margin-left:2px;margin-right:2px;border-bottom:1px solid #aaa3;}.search-results>a>div{display:flex;flex-flow:row wrap;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:50%;}.search-results .result-name{padding-right:1em;}.search-results .result-name>span{display:inline-block;margin:0;font-weight:normal;}body.blur>:not(#help){filter:blur(8px);-webkit-filter:blur(8px);opacity:.7;}#help{width:100%;height:100vh;position:fixed;top:0;left:0;display:flex;justify-content:center;align-items:center;}#help>div{flex:0 0 auto;box-shadow:0 0 6px rgba(0,0,0,.2);width:550px;height:auto;border:1px solid;}#help dt{float:left;clear:left;display:block;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:18px;}#help span.top{text-align:center;display:block;margin:10px 0;border-bottom:1px solid;padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid;}#help dd{margin:5px 35px;}#help .infos{padding-left:0;}#help h1,#help h2{margin-top:0;}#help>div div{width:50%;float:left;padding:0 20px 20px 17px;;}.item-info .stab{display:table;}.stab{border-width:1px;border-style:solid;padding:3px;margin-bottom:5px;font-size:90%;font-weight:normal;}.stab p{display:inline;}.stab .emoji{font-size:1.5em;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.module-item .stab,.import-item .stab{border-radius:3px;display:inline-block;font-size:80%;line-height:1.2;margin-bottom:0;margin-left:.3em;padding:2px;vertical-align:text-bottom;}.module-item.unstable,.import-item.unstable{opacity:0.65;}.since{font-weight:normal;font-size:initial;}.impl-items .since,.impl .since,.methods .since{padding-left:12px;padding-right:2px;position:initial;}.impl-items .srclink,.impl .srclink,.methods .srclink{font-size:17px;font-weight:normal;}.rightside{float:right;}.has-srclink{font-size:16px;margin-bottom:12px;justify-content:space-between;}.variants_table{width:100%;}.variants_table tbody tr td:first-child{width:1%;}td.summary-column{width:100%;}.summary{padding-right:0px;}pre.rust .question-mark{font-weight:bold;}a.test-arrow{display:inline-block;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:130%;top:5px;right:5px;z-index:1;}a.test-arrow:hover{text-decoration:none;}.section-header:hover a:before{position:absolute;left:-25px;padding-right:10px;content:'\2002\00a7\2002';}.section-header:hover a{text-decoration:none;}.section-header a{color:inherit;}.code-attribute{font-weight:300;}.since+.srclink{padding-left:10px;}.item-spacer{width:100%;height:12px;}.out-of-band>span.since{position:initial;font-size:20px;margin-right:5px;}.sub-variant,.sub-variant>h3{margin-top:0px !important;padding-top:1px;}#main .sub-variant>h3{font-size:15px;margin-left:25px;margin-bottom:5px;}.sub-variant>div{margin-left:20px;margin-bottom:10px;}.sub-variant>div>span{display:block;position:relative;}.toggle-label{display:inline-block;margin-left:4px;margin-top:3px;}.docblock>.section-header:first-child{margin-left:15px;margin-top:0;}.docblock>.section-header:first-child:hover>a:before{left:-10px;}:target>code,:target>.code-header{opacity:1;}:target{padding-right:3px;}.information{position:absolute;left:-25px;margin-top:7px;z-index:1;}.tooltip{position:relative;display:inline-block;cursor:pointer;}.tooltip::after{display:none;text-align:center;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;font-size:16px;}.tooltip.ignore::after{content:"This example is not tested";}.tooltip.compile_fail::after{content:"This example deliberately fails to compile";}.tooltip.should_panic::after{content:"This example panics";}.tooltip.edition::after{content:"This code runs with edition " attr(data-edition);}.tooltip::before{content:" ";position:absolute;top:50%;left:16px;margin-top:-5px;border-width:5px;border-style:solid;display:none;}.tooltip:hover::before,.tooltip:hover::after{display:inline;}.tooltip.compile_fail,.tooltip.should_panic,.tooltip.ignore{font-weight:bold;font-size:20px;}.notable-traits-tooltip{display:inline-block;cursor:pointer;}.notable-traits:hover .notable-traits-tooltiptext,.notable-traits .notable-traits-tooltiptext.force-tooltip{display:inline-block;}.notable-traits .notable-traits-tooltiptext{display:none;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;z-index:10;font-size:16px;cursor:default;position:absolute;border:1px solid;}.notable-traits-tooltip::after{content:"\00a0\00a0\00a0";}.notable-traits .notable,.notable-traits .docblock{margin:0;}.notable-traits .notable{margin:0;margin-bottom:13px;font-size:19px;font-weight:600;}.notable-traits .docblock code.content{margin:0;padding:0;font-size:20px;}pre.rust.rust-example-rendered{position:relative;}pre.rust{tab-size:4;-moz-tab-size:4;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#titles{height:35px;}#titles>button{float:left;width:33.3%;text-align:center;font-size:18px;cursor:pointer;border:0;border-top:2px solid;}#titles>button:not(:last-child){margin-right:1px;width:calc(33.3% - 1px);}#titles>button>div.count{display:inline-block;font-size:16px;}.notable-traits{cursor:pointer;z-index:2;margin-left:5px;}#all-types{text-align:center;border:1px solid;margin:0 10px;margin-bottom:10px;display:block;border-radius:7px;}#all-types>p{margin:5px 0;}#sidebar-toggle{position:fixed;top:30px;left:300px;z-index:10;padding:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;cursor:pointer;font-weight:bold;transition:left .5s;font-size:1.2em;border:1px solid;border-left:0;}#source-sidebar{position:fixed;top:0;bottom:0;left:0;width:300px;z-index:1;overflow:auto;transition:left .5s;border-right:1px solid;}#source-sidebar>.title{font-size:1.5em;text-align:center;border-bottom:1px solid;margin-bottom:6px;}.theme-picker{position:absolute;left:211px;top:19px;}.theme-picker button{outline:none;}#settings-menu,#help-button{position:absolute;top:10px;}#settings-menu{right:0;outline:none;}#theme-picker,#settings-menu,#help-button,#copy-path{padding:4px;width:27px;height:29px;border:1px solid;border-radius:3px;cursor:pointer;}#help-button{right:30px;font-family:"Fira Sans",Arial,sans-serif;text-align:center;font-size:17px;padding-top:2px;}#copy-path{background:initial;margin-left:10px;padding:0;padding-left:2px;border:0;}#theme-choices{display:none;position:absolute;left:0;top:28px;border:1px solid;border-radius:3px;z-index:1;cursor:pointer;}#theme-choices>button{border:none;width:100%;padding:4px 8px;text-align:center;background:rgba(0,0,0,0);}#theme-choices>button:not(:first-child){border-top:1px solid;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px;border-radius:3px;box-shadow:inset 0 -1px 0;cursor:default;}.hidden-by-impl-hider,.hidden-by-usual-hider{display:none !important;}#implementations-list>h3>span.in-band{width:100%;}.table-display{width:100%;border:0;border-collapse:collapse;border-spacing:0;font-size:16px;}.table-display tr td:first-child{padding-right:0;}.table-display tr td:last-child{float:right;}.table-display .out-of-band{position:relative;font-size:19px;display:block;}#implementors-list>.impl-items .table-display .out-of-band{font-size:17px;}.table-display td:hover .anchor{display:block;top:2px;left:-5px;}#main>ul{padding-left:10px;}#main>ul>li{list-style:none;}.non-exhaustive{margin-bottom:1em;}div.children{padding-left:27px;display:none;}div.name{cursor:pointer;position:relative;margin-left:16px;}div.files>a{display:block;padding:0 3px;}div.files>a:hover,div.name:hover{background-color:#a14b4b;}div.name.expand+.children{display:block;}div.name::before{content:"\25B6";padding-left:4px;font-size:0.7em;position:absolute;left:-16px;top:4px;}div.name.expand::before{transform:rotate(90deg);left:-15px;top:2px;}details.rustdoc-toggle>summary.hideme{cursor:pointer;}details.rustdoc-toggle>summary,details.undocumented>summary{list-style:none;}details.rustdoc-toggle>summary::-webkit-details-marker,details.rustdoc-toggle>summary::marker,details.undocumented>summary::-webkit-details-marker,details.undocumented>summary::marker{display:none;}details.rustdoc-toggle>summary.hideme>span{margin-left:9px;}details.rustdoc-toggle>summary::before{content:"";cursor:pointer;width:17px;height:max(17px,1.1em);background-repeat:no-repeat;background-position:top left;display:inline-block;vertical-align:middle;opacity:.5;}details.rustdoc-toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.rustdoc-toggle>summary.hideme::after{content:"";}details.rustdoc-toggle>summary:focus::before,details.rustdoc-toggle>summary:hover::before{opacity:1;}details.rustdoc-toggle.top-doc>summary,details.rustdoc-toggle.top-doc>summary::before,details.rustdoc-toggle.non-exhaustive>summary,details.rustdoc-toggle.non-exhaustive>summary::before{font-family:'Fira Sans';font-size:16px;}details.non-exhaustive{margin-bottom:8px;}details.rustdoc-toggle>summary.hideme::before{position:relative;}details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-23px;top:3px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before,.undocumented>details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-2px;}details.rustdoc-toggle[open] >summary.hideme{position:absolute;}details.rustdoc-toggle,details.undocumented{position:relative;}details.rustdoc-toggle[open] >summary.hideme>span{display:none;}details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{width:17px;height:max(17px,1.1em);background-repeat:no-repeat;background-position:top left;display:inline-block;content:"";}details.rustdoc-toggle[open] >summary::after,details.rustdoc-toggle[open] >summary.hideme::after{content:"Collapse";}details.undocumented>summary::before{padding-left:17px;height:max(17px,1.1em);background-repeat:no-repeat;background-position:top left;content:"Show hidden undocumented items";cursor:pointer;font-size:16px;font-weight:300;opacity:.5;}details.undocumented>summary:focus::before,details.undocumented>summary:hover::before{opacity:1;}details.undocumented[open] >summary::before{padding-left:17px;height:max(17px,1.1em);background-repeat:no-repeat background-position:top left;content:"Hide undocumented items";}@media (min-width:701px){.docblock>.information:first-child>.tooltip{margin-top:16px;}}@media (max-width:700px){body{padding-top:0px;}.rustdoc>.sidebar{height:45px;min-height:40px;margin:0;margin-left:-15px;padding:0 15px;position:static;z-index:11;}.sidebar>.location{float:right;margin:0px;margin-top:2px;padding:3px 10px 1px 10px;min-height:39px;background:inherit;text-align:left;font-size:24px;}.sidebar .location:empty{padding:0;}.sidebar .logo-container{width:35px;height:35px;margin-top:5px;margin-bottom:5px;float:left;margin-left:50px;}.sidebar .logo-container>img{max-width:35px;max-height:35px;}.sidebar-menu{position:fixed;z-index:10;font-size:2rem;cursor:pointer;width:45px;left:0;text-align:center;display:block;border-bottom:1px solid;border-right:1px solid;height:45px;}.rustdoc.source>.sidebar>.sidebar-menu{display:none;}.sidebar-elems{position:fixed;z-index:1;top:45px;bottom:0;width:246px;left:-246px;overflow-y:auto;border-right:1px solid;}.sidebar>.block.version{overflow:hidden;border-bottom:none;margin-bottom:0;height:100%;padding-left:12px;}.sidebar>.block.version>div.narrow-helper{float:left;width:1px;height:100%;}.sidebar>.block.version>p{margin:0;min-width:55px;display:flex;align-items:center;height:100%;}nav.sub{width:calc(100% - 32px);float:right;}.content{margin-left:0px;}#main,#search{margin-top:45px;padding:0;}#search{margin-left:0;}.anchor{display:none !important;}.theme-picker{left:10px;top:54px;z-index:1;}.notable-traits{position:absolute;left:-22px;top:24px;}#titles>button>div.count{float:left;width:100%;}#titles{height:50px;}.sidebar.mobile{position:fixed;width:100%;margin-left:0;background-color:rgba(0,0,0,0);height:100%;}.sidebar.mobile>div.version{overflow:hidden;max-height:33px;}.sidebar{width:calc(100% + 30px);}.show-it,.sidebar-elems:focus-within{z-index:2;left:0;}.show-it>.block.items{margin:8px 0;}.show-it>.block.items>ul{margin:0;}.show-it>.block.items>ul>li{text-align:center;margin:2px 0;}.show-it>.block.items>ul>li>a{font-size:21px;}#sidebar-filler{position:fixed;left:45px;width:calc(100% - 45px);top:0;height:45px;z-index:-1;border-bottom:1px solid;}#main>details.rustdoc-toggle>summary::before,#main>div>details.rustdoc-toggle>summary::before{left:-11px;}#all-types{margin:10px;}#sidebar-toggle{top:100px;width:30px;font-size:1.5rem;text-align:center;padding:0;}#source-sidebar{z-index:11;}#main>.line-numbers{margin-top:0;}.notable-traits .notable-traits-tooltiptext{left:0;top:100%;}#help-button{display:none;}.item-table{display:block;}.item-row{display:flex;flex-flow:column wrap;}.item-left,.item-right{width:100%;}.search-container>div{width:calc(100% - 32px);}.search-results>a{border-bottom:1px solid #aaa9;padding:5px 0px;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:100%;}.search-results div.desc,.search-results .result-description,.item-right{padding-left:2em;}}@media print{nav.sub,.content .out-of-band{display:none;}}@media (max-width:464px){#titles,#titles>button{height:73px;}#main,#search{margin-top:100px;}#main>table:not(.table-display) td{word-break:break-word;width:50%;}.search-container>div{display:block;width:calc(100% - 37px);}#crate-search{width:100%;border-radius:4px;border:0;}#crate-search+.search-input{width:calc(100% + 71px);margin-left:-36px;}#theme-picker,#settings-menu{padding:5px;width:31px;height:31px;}#theme-picker{margin-top:-2px;}#settings-menu{top:7px;}.docblock{margin-left:12px;}}details.undocumented[open] >summary::before,details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{background-image:url(toggle-minus.svg);}details.undocumented>summary::before,details.rustdoc-toggle>summary::before{background-image:url(toggle-plus.svg);} \ No newline at end of file diff --git a/search-index.js b/search-index.js index 4b89098af..d931d31e9 100644 --- a/search-index.js +++ b/search-index.js @@ -1,9 +1,9 @@ var searchIndex = JSON.parse('{\ "actix_cors":{"doc":"Cross-Origin Resource Sharing (CORS) controls for Actix …","t":[13,13,3,4,13,13,13,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],"n":["BadRequestHeaders","BadRequestMethod","Cors","CorsError","HeadersNotAllowed","MethodNotAllowed","MissingOrigin","MissingRequestMethod","OriginNotAllowed","WildcardOrigin","allow_any_header","allow_any_method","allow_any_origin","allowed_header","allowed_headers","allowed_methods","allowed_origin","allowed_origin_fn","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","disable_preflight","disable_vary_header","error_response","expose_any_header","expose_headers","fmt","fmt","fmt","from","from","into","into","max_age","new_transform","permissive","send_wildcard","status_code","supports_credentials","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip"],"q":["actix_cors","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Request header Access-Control-Request-Headers has an …","Request header Access-Control-Request-Method has an …","Builder for CORS middleware.","Errors that can occur when processing CORS guarded …","One or more request headers are not allowed.","Request method is not allowed.","Request header Origin is required but was not provided.","Request header Access-Control-Request-Method is required …","Origin is not allowed to make this request.","Allowed origin argument must not be wildcard (*).","Resets allowed request header list to a state where any …","Resets allowed methods list to all methods.","Resets allowed origin list to a state where any origin is …","Add an allowed request header.","Set a list of request header field names which can be used …","Set a list of methods which allowed origins can perform.","Add an origin that is allowed to make requests.","Determinate allowed origins by processing requests which …","","","","","","","A restrictive (security paranoid) set of defaults.","Disable support for preflight requests.","Disable Vary header support.","","Resets exposed response header list to a state where any …","Set a list of headers which are safe to expose to the API …","","","","","","","","Set a maximum time (in seconds) for which this CORS …","","A very permissive set of default for quick development. …","Set to use wildcard origins.","","Allows users to make authenticated requests","","","","","","","","","",""],"i":[1,1,0,0,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,1,2,1,1,1,2,2,2,1,2,2,2,1,1,2,1,2,1,2,2,2,2,1,2,1,1,2,1,2,1,2,1,2,1],"f":[null,null,null,null,null,null,null,null,null,null,[[],["cors",3]],[[],["cors",3]],[[],["cors",3]],[[],["cors",3]],[[],["cors",3]],[[],["cors",3]],[[["str",15]],["cors",3]],[[],["cors",3]],[[]],[[]],[[]],[[]],[[],["corserror",4]],[[]],[[],["cors",3]],[[],["cors",3]],[[],["cors",3]],[[],["httpresponse",3]],[[],["cors",3]],[[],["cors",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[],["cors",3]],[[]],[[]],[[],["cors",3]],[[],["statuscode",3]],[[],["cors",3]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]]],"p":[[4,"CorsError"],[3,"Cors"]]},\ -"actix_identity":{"doc":"Opinionated request identity service for Actix Web apps.","t":[3,16,3,8,3,8,16,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,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],"n":["CookieIdentityPolicy","Future","Identity","IdentityPolicy","IdentityService","RequestIdentity","ResponseFuture","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","domain","forget","from","from","from","from_request","from_request","from_request","get_identity","http_only","identity","into","into","into","login_deadline","max_age","max_age_secs","name","new","new","new_transform","path","remember","same_site","secure","to_owned","to_response","to_response","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","visit_deadline","vzip","vzip","vzip"],"q":["actix_identity","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Use cookies for request identity storage.","The return type of the middleware","The extractor type to obtain your identity from a request.","Identity policy.","Request identity middleware","Helper trait that allows to get Identity.","The return type of the middleware","","","","","","","","","Sets the Domain attribute of issued cookies.","This method is used to ‘forget’ the current identity …","","","","Parse the session from request and load data from a …","","","","Sets the HttpOnly attribute of issued cookies.","Return the claimed identity of the user associated request …","","","","Accepts only users who authenticated within the given …","Sets the Max-Age attribute of issued cookies.","Sets the Max-Age attribute of issued cookies with given …","Sets the name of issued cookies.","Create new CookieIdentityPolicy instance.","Create new identity service with specified backend.","","Sets the Path attribute of issued cookies.","Remember identity.","Sets the SameSite attribute of issued cookies.","Sets the Secure attribute of issued cookies.","","Write changes to response","","","","","","","","","","","Accepts only users who have visited within given deadline.","","",""],"i":[0,1,0,0,0,0,1,2,3,4,2,3,4,4,4,2,4,2,3,4,1,2,4,5,2,4,2,3,4,2,2,2,2,2,3,3,2,4,2,2,4,1,2,2,3,4,2,3,4,2,3,4,2,2,3,4],"f":[null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["identity",3]],[[]],[[],["cookieidentitypolicy",3]],[[]],[[]],[[]],[[]],[[["servicerequest",3]]],[[["servicerequest",3]]],[[["httprequest",3],["payload",4]]],[[],[["string",3],["option",4,["string"]]]],[[["bool",15]]],[[],[["string",3],["option",4,["string"]]]],[[]],[[]],[[]],[[["duration",3]],["cookieidentitypolicy",3]],[[["duration",3]],["cookieidentitypolicy",3]],[[["i64",15]],["cookieidentitypolicy",3]],[[],["cookieidentitypolicy",3]],[[],["cookieidentitypolicy",3]],[[]],[[]],[[],["cookieidentitypolicy",3]],[[["string",3]]],[[["samesite",4]]],[[["bool",15]],["cookieidentitypolicy",3]],[[]],[[["bool",15],["string",3],["option",4,["string"]],["serviceresponse",3]]],[[["bool",15],["string",3],["option",4,["string"]],["serviceresponse",3]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[["duration",3]],["cookieidentitypolicy",3]],[[]],[[]],[[]]],"p":[[8,"IdentityPolicy"],[3,"CookieIdentityPolicy"],[3,"IdentityService"],[3,"Identity"],[8,"RequestIdentity"]]},\ -"actix_protobuf":{"doc":"","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,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","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","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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":[1,2,2,2,2,0,0,0,0,0,2,1,3,4,2,1,3,4,2,3,1,1,2,1,1,2,2,1,3,4,2,2,2,1,1,3,4,2,4,3,4,4,4,5,1,1,2,1,3,4,2,1,3,4,2,4,1,3,4,2,1,3,4,2,6,7,8],"f":[null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["httpresponse",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["payloaderror",4]],["protobufpayloaderror",4]],[[["protobufdecodeerror",3]],["protobufpayloaderror",4]],[[["payload",4],["httprequest",3]]],[[]],[[]],[[]],[[]],[[]],[[["usize",15]]],[[["usize",15]]],[[["payload",4],["httprequest",3]]],[[["pin",3],["context",3]],["poll",4]],[[["message",8]],[["httpresponse",3],["result",4,["httpresponse","error"]],["error",3]]],[[["httprequest",3]],["httpresponse",3]],[[],["string",3]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["context",3],["pin",3]],["poll",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],[[]],null,null,null],"p":[[3,"ProtoBuf"],[4,"ProtoBufPayloadError"],[3,"ProtoBufConfig"],[3,"ProtoBufMessage"],[8,"ProtoBufResponseBuilder"],[13,"Serialize"],[13,"Deserialize"],[13,"Payload"]]},\ -"actix_redis":{"doc":"Redis integration for Actix and session store for Actix …","t":[12,13,13,3,13,13,4,13,13,13,13,13,13,13,13,13,13,3,3,13,4,4,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,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,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],"n":["0","Array","BulkString","Command","Connection","Disconnected","Error","Error","IO","Integer","Internal","Lax","Nil","None","NotConnected","RESP","Redis","RedisActor","RedisSession","Remote","RespError","RespValue","SameSite","SimpleString","Strict","Unexpected","append","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cache_keygen","clone","clone","clone_into","clone_into","cookie_domain","cookie_http_only","cookie_max_age","cookie_name","cookie_path","cookie_same_site","cookie_secure","eq","eq","equivalent","equivalent","error","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_resp_int","get_hash","handle","handle","hash","into","into","into","into","into","into","into","is_lax","is_none","is_strict","ne","new","new_transform","push","restarting","source","source","start","started","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","ttl","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","0"],"q":["actix_redis","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_redis::Error"],"d":["","Zero, one or more other RespValues.","A bulk string. In Redis terminology a string is a …","Command for send data to Redis","Error creating a connection, or an error with a connection …","Cancel all waters when connection get 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 …","The “Lax” SameSite attribute.","","The “None” SameSite attribute.","Receiving message during reconnecting","A RESP parsing/serialising error occurred","","Redis communication actor","Use redis as session storage.","A remote error","","A single RESP value, this owns the data that is read/to-be …","The SameSite cookie attribute.","","The “Strict” SameSite attribute.","An unexpected error. In this context “unexpected” …","Convenience function for building dynamic Redis commands …","","","","","","","","","","","","","","","Set a custom cache key generation strategy, expecting …","","","","","Set custom cookie domain.","Set custom cookie HttpOnly policy.","Set custom cookie max-age.","Set custom cookie name for session ID.","Set custom cookie path.","Set custom cookie SameSite attribute.","Set custom cookie secure.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns true if self is SameSite::Lax and false otherwise.","Returns true if self is SameSite::None and false otherwise.","Returns true if self is SameSite::Strict and false …","","Create new redis session backend","","Push item to Resp array","","","","Start new Supervisor with RedisActor.","","","","","","","","","","","","","","","","","","","","","Set time to live in seconds for session value.","","","","","","","","","","","","","","",""],"i":[1,2,2,0,3,4,0,2,3,2,3,5,2,5,4,3,4,0,0,3,0,0,0,2,5,3,2,6,7,1,4,2,3,5,6,7,1,4,2,3,5,7,2,5,2,5,7,7,7,7,7,7,7,2,5,2,5,6,1,4,4,2,3,3,5,5,6,7,1,4,4,2,2,2,2,2,2,2,2,3,3,3,5,2,5,6,6,5,6,7,1,4,2,3,5,5,5,5,2,7,7,2,6,4,3,6,6,2,5,4,3,5,6,7,1,4,2,3,5,6,7,1,4,2,3,5,7,6,7,1,4,2,3,5,6,7,1,4,2,3,5,8],"f":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[],["respvalue",4]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["box",3,["fn"]],["fn",8]]],[[],["respvalue",4]],[[],["samesite",4]],[[]],[[]],[[["str",15]]],[[["bool",15]]],[[]],[[["str",15]]],[[["str",15]]],[[["samesite",4]]],[[["bool",15]]],[[["respvalue",4]],["bool",15]],[[["samesite",4]],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[["error",3]],["running",4]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],[["result",4,["error"]],["error",3]]],[[["formatter",3]],[["result",4,["error"]],["error",3]]],[[["formatter",3]],[["result",4,["error"]],["error",3]]],[[["formatter",3]],[["result",4,["error"]],["error",3]]],[[["formatter",3]],[["result",4,["error"]],["error",3]]],[[]],[[]],[[]],[[["error",4]],["error",4]],[[]],[[["vec",3,["u8","global"]],["u8",15],["global",3]],["respvalue",4]],[[],["respvalue",4]],[[["str",15]],["respvalue",4]],[[["usize",15]],["respvalue",4]],[[]],[[["string",3]],["respvalue",4]],[[["arc",3,["str"]],["str",15]],["respvalue",4]],[[["string",3]],["respvalue",4]],[[["error",3]],["error",4]],[[]],[[["trysenderror",3]],["error",4]],[[]],[[["respvalue",4]],[["result",4,["respvalue","error"]],["respvalue",4],["error",4]]],[[],["u64",15]],[[["result",4,["respvalue","resperror"]],["respvalue",4],["resperror",4]]],[[["command",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[["respvalue",4]],["bool",15]],[[["into",8,["string"]],["string",3]],["redissession",3]],[[]],[[]],[[]],[[],[["option",4,["error"]],["error",8]]],[[],[["option",4,["error"]],["error",8]]],[[["into",8,["string"]],["string",3]],[["addr",3,["redisactor"]],["redisactor",3]]],[[["context",3]]],[[]],[[]],[[],["string",3]],[[],["string",3]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["u32",15]]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null],"p":[[3,"Command"],[4,"RespValue"],[4,"RespError"],[4,"Error"],[4,"SameSite"],[3,"RedisActor"],[3,"RedisSession"],[13,"Redis"]]},\ -"actix_session":{"doc":"Sessions for Actix Web.","t":[13,3,13,13,3,4,13,8,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],"n":["Changed","CookieSession","Purged","Renewed","Session","SessionStatus","Unchanged","UserSession","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clear","clone","clone_into","default","domain","entries","eq","expires_in","expires_in_time","fmt","from","from","from","from_request","get","get_changes","get_session","http_only","insert","into","into","into","lazy","max_age","max_age_time","name","new_transform","path","private","purge","remove","remove_as","renew","same_site","secure","set_session","signed","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip"],"q":["actix_session","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Session has been updated and requires a new persist …","Use cookies for session storage.","Session is flagged for deletion and should be removed from …","Session is flagged for refresh.","The high-level interface you use to modify session data.","Status of a Session.","Session is unchanged from when last seen (if exists).","Extraction of a Session object.","","","","","","","Clear the session.","","","","Sets the domain field in the session cookie being built.","Get all raw key-value data from the session.","","Sets the expires field in the session cookie being built.","Sets the expires field in the session cookie being built.","","","","","","Get a value from the session.","Returns session status and iterator of key-value pairs of …","Extract the Session object","Sets the http_only field in the session cookie being built.","Inserts a key-value pair into the session.","","","","When true, prevents adding session cookies to responses …","Sets the max-age field in the session cookie being built.","Sets the max-age field in the session cookie being built.","Sets the name field in the session cookie being built.","","Sets the path field in the session cookie being built.","Construct new private CookieSession instance.","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 …","Sets the same_site field in the session cookie being built.","Sets the secure field in the session cookie being built.","Adds the given key-value pairs to the session on the …","Construct new signed CookieSession instance.","","","","","","","","","","","","",""],"i":[1,0,1,1,0,0,1,0,2,3,1,2,3,1,3,1,1,1,2,3,1,2,2,1,2,3,1,3,3,3,4,2,3,2,3,1,2,2,2,2,2,2,2,3,3,3,3,2,2,3,2,1,2,3,1,2,3,1,2,3,1,2,3,1],"f":[null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["sessionstatus",4]],[[]],[[],["sessionstatus",4]],[[["into",8,["string"]],["string",3]],["cookiesession",3]],[[],[["hashmap",3,["string","string"]],["ref",3,["hashmap"]]]],[[["sessionstatus",4]],["bool",15]],[[["i64",15]],["cookiesession",3]],[[["duration",3]],["cookiesession",3]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[["httprequest",3],["payload",4]]],[[["str",15]],[["result",4,["option","error"]],["option",4],["error",3]]],[[["serviceresponse",3]]],[[],["session",3]],[[["bool",15]],["cookiesession",3]],[[],[["result",4,["error"]],["error",3]]],[[]],[[]],[[]],[[["bool",15]],["cookiesession",3]],[[["i64",15]],["cookiesession",3]],[[["duration",3]],["cookiesession",3]],[[["into",8,["string"]],["string",3]],["cookiesession",3]],[[]],[[["into",8,["string"]],["string",3]],["cookiesession",3]],[[],["cookiesession",3]],[[]],[[["str",15]],[["option",4,["string"]],["string",3]]],[[["str",15]],[["option",4,["result"]],["result",4,["string"]]]],[[]],[[["samesite",4]],["cookiesession",3]],[[["bool",15]],["cookiesession",3]],[[["servicerequest",3]]],[[],["cookiesession",3]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]]],"p":[[4,"SessionStatus"],[3,"CookieSession"],[3,"Session"],[8,"UserSession"]]},\ -"actix_web_httpauth":{"doc":"HTTP authentication schemes for actix-web.","t":[0,0,0,8,8,3,16,16,16,0,0,11,11,11,11,11,11,11,11,10,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,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,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","AuthExtractor","AuthExtractorConfig","AuthenticationError","Error","Future","Inner","basic","bearer","borrow","borrow_mut","challenge_mut","error_response","fmt","fmt","from","from","from_service_request","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","from_service_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","from_service_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_header_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_header_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 by types that can extract HTTP …","Trait implemented for types that provides configuration …","Authentication error returned by authentication extractors.","The associated error which can be returned.","Future that resolves into extracted credentials type.","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.","","","","","","Parse the authentication credentials from the actix’ …","","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 …","","","","","","","","","","","","","","","","","","","","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, …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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 the 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","","","","","","","","","","","","","","","","","","Converts the challenge into a bytes suitable for HTTP …","","","","","","","","Challenge for WWW-Authenticate header with HTTP Basic auth …","","","","","","","","","","","","","","","","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 RFC6750, …","Provides the error_description attribute, as defined in …","Provides the error_uri attribute, as defined in RFC6750, …","Consumes the builder and returns built Bearer instance.","","","","","","","","","","","","Provides the realm attribute, as defined in RFC2617","Provides the scope attribute, as defined in RFC6749, …","","","","","","","","","","","","Middleware for checking HTTP authentication.","Construct HttpAuthentication middleware for the HTTP “…","Construct HttpAuthentication middleware for the HTTP “…","","","","","","","","","","","","","","Construct HttpAuthentication middleware with the provided …"],"i":[0,0,0,0,0,0,1,1,2,0,0,3,3,3,3,3,3,3,3,1,3,2,3,3,3,3,3,3,3,3,3,3,3,0,0,4,4,5,4,5,4,5,4,5,4,4,5,4,5,5,5,4,5,4,5,4,4,5,4,5,4,5,4,5,5,4,5,0,0,0,6,6,6,7,7,8,6,7,8,6,7,8,6,7,8,6,6,7,6,6,7,8,6,6,7,8,6,8,8,6,6,7,8,6,7,6,7,7,6,7,8,6,6,8,7,8,6,7,8,6,7,8,6,7,8,6,0,0,0,9,0,0,9,9,9,0,0,9,9,10,10,9,10,11,12,9,10,11,12,10,11,12,10,11,12,10,11,12,10,10,11,12,10,11,12,9,9,10,10,11,11,12,12,9,9,9,9,10,10,10,11,12,10,10,9,10,11,12,10,10,10,11,12,11,12,13,10,11,12,10,11,12,11,9,10,11,12,9,10,11,12,12,9,10,11,12,9,10,11,12,10,10,11,12,9,10,11,12,11,9,10,11,12,14,15,16,17,18,0,0,0,0,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,0,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,6,6,6,21,22,21,22,22,22,22,22,21,22,22,22,21,21,21,21,21,22,22,21,22,22,22,21,22,22,22,21,21,22,22,21,22,21,22,22,21,22,21,22,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23],"f":[null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[],["httpresponse",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[["servicerequest",3]]],[[]],[[]],[[],["authenticationerror",3]],[[],["statuscode",3]],[[],["statuscode",3]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],[[["error",4]]],[[]],[[]],null,null,[[],["challenge",3]],[[]],[[]],[[]],[[]],[[],["config",3]],[[],["basicauth",3]],[[]],[[]],[[],["config",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[["httprequest",3],["payload",4]]],[[["servicerequest",3]]],[[]],[[]],[[]],[[],[["option",4,["cow"]],["cow",4]]],[[],["config",3]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["cow",4]],[[]],[[]],null,null,null,null,null,null,[[],["bearer",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["config",3]],[[],["bearerauth",3]],[[],["error",4]],[[]],[[]],[[]],[[["error",4]],["ordering",4]],[[],["config",3]],[[["error",4]],["bool",15]],[[],["bool",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[["httprequest",3],["payload",4]]],[[["servicerequest",3]]],[[],["u64",15]],[[]],[[]],[[]],[[]],[[]],[[["error",4]],[["option",4,["ordering"]],["ordering",4]]],[[["cow",4,["str"]],["into",8,["cow"]]],["config",3]],[[["cow",4,["str"]],["into",8,["cow"]]],["config",3]],[[],["statuscode",3]],[[]],[[]],[[]],[[],["string",3]],[[],["str",15]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["authorization",3]],[[],["basic",3]],[[],["bearer",3]],[[]],[[]],[[]],[[["authorization",3]],["ordering",4]],[[["basic",3]],["ordering",4]],[[["bearer",3]],["ordering",4]],[[],["authorization",3]],[[["authorization",3]],["bool",15]],[[["basic",3]],["bool",15]],[[["bearer",3]],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["decodeerror",4]]],[[]],[[["tostrerror",3]]],[[["utf8error",3]]],[[]],[[]],[[],["authorization",3]],[[]],[[]],[[],["u64",15]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["headername",3]],[[["authorization",3]],["bool",15]],[[["basic",3]],["bool",15]],[[["bearer",3]],["bool",15]],[[["option",4]],["basic",3]],[[],["bearer",3]],[[["headervalue",3]],[["result",4,["parseerror"]],["parseerror",4]]],[[],[["parseerror",4],["result",4,["parseerror"]]]],[[["headervalue",3]],[["result",4,["parseerror"]],["parseerror",4]]],[[["headervalue",3]],[["result",4,["parseerror"]],["parseerror",4]]],[[["authorization",3]],[["option",4,["ordering"]],["ordering",4]]],[[["basic",3]],[["option",4,["ordering"]],["ordering",4]]],[[["bearer",3]],[["option",4,["ordering"]],["ordering",4]]],[[],[["option",4,["cow"]],["cow",4]]],[[],[["option",4,["error"]],["error",8]]],[[]],[[]],[[]],[[],["string",3]],[[],["string",3]],[[],["string",3]],[[],["string",3]],[[],["cow",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],[["headervalue",3],["result",4,["headervalue"]]]],[[],[["headervalue",3],["result",4,["headervalue"]]]],[[],[["result",4,["headervalue"]],["headervalue",3]]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["cow",4]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,[[]],[[]],[[],["wwwauthenticate",3]],[[]],[[["wwwauthenticate",3]],["ordering",4]],[[],["wwwauthenticate",3]],[[["wwwauthenticate",3]],["bool",15]],[[],["bool",15]],[[["formatter",3]],["result",6]],[[]],[[],["u64",15]],[[]],[[]],[[],["headername",3]],[[["wwwauthenticate",3]],["bool",15]],[[],[["parseerror",4],["result",4,["parseerror"]]]],[[["wwwauthenticate",3]],[["option",4,["ordering"]],["ordering",4]]],[[],["bytes",3]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],[["result",4,["headervalue"]],["headervalue",3]]],[[],["typeid",3]],[[]],null,[[]],[[]],[[],["basic",3]],[[]],[[["basic",3]],["ordering",4]],[[],["basic",3]],[[["basic",3]],["bool",15]],[[],["bool",15]],[[["formatter",3]],[["error",3],["result",4,["error"]]]],[[["formatter",3]],["result",6]],[[]],[[],["u64",15]],[[]],[[]],[[["basic",3]],["bool",15]],[[],["basic",3]],[[["basic",3]],[["option",4,["ordering"]],["ordering",4]]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],[["headervalue",3],["result",4,["headervalue"]]]],[[],["typeid",3]],[[]],[[],["basic",3]],null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[],["bearerbuilder",3]],[[],["bearer",3]],[[]],[[["bearer",3]],["ordering",4]],[[],["bearerbuilder",3]],[[],["bearer",3]],[[["bearer",3]],["bool",15]],[[],["bool",15]],[[["error",4]]],[[]],[[]],[[],["bearer",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],[["error",3],["result",4,["error"]]]],[[]],[[]],[[],["u64",15]],[[]],[[]],[[]],[[["bearer",3]],["bool",15]],[[["bearer",3]],[["option",4,["ordering"]],["ordering",4]]],[[]],[[]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],[["result",4,["headervalue"]],["headervalue",3]]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[],["httpauthentication",3]],[[]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],[[],["httpauthentication",3]]],"p":[[8,"AuthExtractor"],[8,"AuthExtractorConfig"],[3,"AuthenticationError"],[3,"Config"],[3,"BasicAuth"],[4,"Error"],[3,"Config"],[3,"BearerAuth"],[4,"ParseError"],[3,"Authorization"],[3,"Basic"],[3,"Bearer"],[8,"Scheme"],[13,"MissingField"],[13,"ToStrError"],[13,"Base64DecodeError"],[13,"Utf8Error"],[3,"WwwAuthenticate"],[8,"Challenge"],[3,"Basic"],[3,"BearerBuilder"],[3,"Bearer"],[3,"HttpAuthentication"]]}\ +"actix_identity":{"doc":"Opinionated request identity service for Actix Web apps.","t":[3,16,3,8,3,8,16,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,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],"n":["CookieIdentityPolicy","Future","Identity","IdentityPolicy","IdentityService","RequestIdentity","ResponseFuture","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","domain","forget","from","from","from","from_request","from_request","from_request","get_identity","http_only","identity","into","into","into","login_deadline","max_age","max_age_secs","name","new","new","new_transform","path","remember","same_site","secure","to_owned","to_response","to_response","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","visit_deadline","vzip","vzip","vzip"],"q":["actix_identity","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Use cookies for request identity storage.","The return type of the middleware","The extractor type to obtain your identity from a request.","Identity policy.","Request identity middleware","Helper trait that allows to get Identity.","The return type of the middleware","","","","","","","","","Sets the Domain attribute of issued cookies.","This method is used to ‘forget’ the current identity …","","","","Parse the session from request and load data from a …","","","","Sets the HttpOnly attribute of issued cookies.","Return the claimed identity of the user associated request …","","","","Accepts only users who authenticated within the given …","Sets the Max-Age attribute of issued cookies.","Sets the Max-Age attribute of issued cookies with given …","Sets the name of issued cookies.","Create new CookieIdentityPolicy instance.","Create new identity service with specified backend.","","Sets the Path attribute of issued cookies.","Remember identity.","Sets the SameSite attribute of issued cookies.","Sets the Secure attribute of issued cookies.","","Write changes to response","","","","","","","","","","","Accepts only users who have visited within given deadline.","","",""],"i":[0,1,0,0,0,0,1,2,3,4,2,3,4,4,4,2,4,2,3,4,1,2,4,5,2,4,2,3,4,2,2,2,2,2,3,3,2,4,2,2,4,1,2,2,3,4,2,3,4,2,3,4,2,2,3,4],"f":[null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["identity",3]],[[]],[[],["cookieidentitypolicy",3]],[[]],[[]],[[]],[[]],[[["servicerequest",3]]],[[["servicerequest",3]]],[[["payload",4],["httprequest",3]]],[[],[["string",3],["option",4,["string"]]]],[[["bool",15]]],[[],[["string",3],["option",4,["string"]]]],[[]],[[]],[[]],[[["duration",3]],["cookieidentitypolicy",3]],[[["duration",3]],["cookieidentitypolicy",3]],[[["i64",15]],["cookieidentitypolicy",3]],[[],["cookieidentitypolicy",3]],[[],["cookieidentitypolicy",3]],[[]],[[]],[[],["cookieidentitypolicy",3]],[[["string",3]]],[[["samesite",4]]],[[["bool",15]],["cookieidentitypolicy",3]],[[]],[[["serviceresponse",3],["bool",15],["string",3],["option",4,["string"]]]],[[["serviceresponse",3],["bool",15],["string",3],["option",4,["string"]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[["duration",3]],["cookieidentitypolicy",3]],[[]],[[]],[[]]],"p":[[8,"IdentityPolicy"],[3,"CookieIdentityPolicy"],[3,"IdentityService"],[3,"Identity"],[8,"RequestIdentity"]]},\ +"actix_protobuf":{"doc":"","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,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","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","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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":[1,2,2,2,2,0,0,0,0,0,2,1,3,4,2,1,3,4,2,3,1,1,2,1,1,2,2,1,3,4,2,2,2,1,1,3,4,2,4,3,4,4,4,5,1,1,2,1,3,4,2,1,3,4,2,4,1,3,4,2,1,3,4,2,6,7,8],"f":[null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["httpresponse",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["payloaderror",4]],["protobufpayloaderror",4]],[[["protobufdecodeerror",3]],["protobufpayloaderror",4]],[[["httprequest",3],["payload",4]]],[[]],[[]],[[]],[[]],[[]],[[["usize",15]]],[[["usize",15]]],[[["httprequest",3],["payload",4]]],[[["pin",3],["context",3]],["poll",4]],[[["message",8]],[["result",4,["httpresponse","error"]],["httpresponse",3],["error",3]]],[[["httprequest",3]],["httpresponse",3]],[[],["string",3]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["context",3],["pin",3]],["poll",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],[[]],null,null,null],"p":[[3,"ProtoBuf"],[4,"ProtoBufPayloadError"],[3,"ProtoBufConfig"],[3,"ProtoBufMessage"],[8,"ProtoBufResponseBuilder"],[13,"Serialize"],[13,"Deserialize"],[13,"Payload"]]},\ +"actix_redis":{"doc":"Redis integration for Actix and session store for Actix …","t":[12,13,13,3,13,13,4,13,13,13,13,13,13,13,13,13,13,3,3,13,4,4,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,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,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","Lax","Nil","None","NotConnected","RESP","Redis","RedisActor","RedisSession","Remote","RespError","RespValue","SameSite","SimpleString","Strict","Unexpected","append","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cache_keygen","clone","clone","clone_into","clone_into","cookie_domain","cookie_http_only","cookie_max_age","cookie_name","cookie_path","cookie_same_site","cookie_secure","eq","eq","equivalent","equivalent","error","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_resp_int","get_hash","handle","handle","hash","into","into","into","into","into","into","into","is_lax","is_none","is_strict","ne","new","new_transform","push","restarting","source","source","start","started","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","ttl","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","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 send data to Redis","Error creating a connection, or an error with a connection …","Cancel all waters when connection get 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 …","The “Lax” SameSite attribute.","","The “None” SameSite attribute.","Receiving message during reconnecting","A RESP parsing/serialising error occurred","","Redis communication actor","Use redis as session storage.","A remote error","","A single RESP value, this owns the data that is read/to-be …","The SameSite cookie attribute.","","The “Strict” SameSite attribute.","An unexpected error. In this context “unexpected” …","Convenience function for building dynamic Redis commands …","","","","","","","","","","","","","","","Set a custom cache key generation strategy, expecting …","","","","","Set custom cookie domain.","Set custom cookie HttpOnly policy.","Set custom cookie max-age.","Set custom cookie name for session ID.","Set custom cookie path.","Set custom cookie SameSite attribute.","Set custom cookie secure.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns true if self is SameSite::Lax and false otherwise.","Returns true if self is SameSite::None and false otherwise.","Returns true if self is SameSite::Strict and false …","","Create new redis session backend","","Push item to Resp array","","","","Start new Supervisor with RedisActor.","","","","","","","","","","","","","","","","","","","","","Set time to live in seconds for session value.","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[1,2,2,0,3,4,0,2,3,2,3,5,2,5,4,3,4,0,0,3,0,0,0,2,5,3,2,6,7,1,4,2,3,5,6,7,1,4,2,3,5,7,2,5,2,5,7,7,7,7,7,7,7,2,5,2,5,6,1,4,4,2,3,3,5,5,6,7,1,4,4,2,2,2,2,2,2,2,2,3,3,3,5,2,5,6,6,5,6,7,1,4,2,3,5,5,5,5,2,7,7,2,6,4,3,6,6,2,5,4,3,5,6,7,1,4,2,3,5,6,7,1,4,2,3,5,7,6,7,1,4,2,3,5,6,7,1,4,2,3,5,8,9,10,11,12,13,14,11,15,16,17,18,19],"f":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[],["respvalue",4]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["box",3,["fn"]],["fn",8]]],[[],["respvalue",4]],[[],["samesite",4]],[[]],[[]],[[["str",15]]],[[["bool",15]]],[[]],[[["str",15]]],[[["str",15]]],[[["samesite",4]]],[[["bool",15]]],[[["respvalue",4]],["bool",15]],[[["samesite",4]],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[["error",3]],["running",4]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],[["error",3],["result",4,["error"]]]],[[["formatter",3]],[["error",3],["result",4,["error"]]]],[[["formatter",3]],[["error",3],["result",4,["error"]]]],[[["formatter",3]],[["error",3],["result",4,["error"]]]],[[["formatter",3]],[["error",3],["result",4,["error"]]]],[[]],[[]],[[]],[[["error",4]],["error",4]],[[]],[[["usize",15]],["respvalue",4]],[[]],[[["string",3]],["respvalue",4]],[[["string",3]],["respvalue",4]],[[["str",15]],["respvalue",4]],[[["arc",3,["str"]],["str",15]],["respvalue",4]],[[["u8",15],["vec",3,["u8","global"]],["global",3]],["respvalue",4]],[[],["respvalue",4]],[[["trysenderror",3]],["error",4]],[[]],[[["error",3]],["error",4]],[[]],[[["respvalue",4]],[["result",4,["respvalue","error"]],["respvalue",4],["error",4]]],[[],["u64",15]],[[["respvalue",4],["result",4,["respvalue","resperror"]],["resperror",4]]],[[["command",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[["respvalue",4]],["bool",15]],[[["into",8,["string"]],["string",3]],["redissession",3]],[[]],[[]],[[]],[[],[["error",8],["option",4,["error"]]]],[[],[["option",4,["error"]],["error",8]]],[[["into",8,["string"]],["string",3]],[["addr",3,["redisactor"]],["redisactor",3]]],[[["context",3]]],[[]],[[]],[[],["string",3]],[[],["string",3]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["u32",15]]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null],"p":[[3,"Command"],[4,"RespValue"],[4,"RespError"],[4,"Error"],[4,"SameSite"],[3,"RedisActor"],[3,"RedisSession"],[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":"Sessions for Actix Web.","t":[13,3,13,13,3,4,13,8,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],"n":["Changed","CookieSession","Purged","Renewed","Session","SessionStatus","Unchanged","UserSession","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clear","clone","clone_into","default","domain","entries","eq","expires_in","expires_in_time","fmt","from","from","from","from_request","get","get_changes","get_session","http_only","insert","into","into","into","lazy","max_age","max_age_time","name","new_transform","path","private","purge","remove","remove_as","renew","same_site","secure","set_session","signed","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip"],"q":["actix_session","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Session has been updated and requires a new persist …","Use cookies for session storage.","Session is flagged for deletion and should be removed from …","Session is flagged for refresh.","The high-level interface you use to modify session data.","Status of a Session.","Session is unchanged from when last seen (if exists).","Extraction of a Session object.","","","","","","","Clear the session.","","","","Sets the domain field in the session cookie being built.","Get all raw key-value data from the session.","","Sets the expires field in the session cookie being built.","Sets the expires field in the session cookie being built.","","","","","","Get a value from the session.","Returns session status and iterator of key-value pairs of …","Extract the Session object","Sets the http_only field in the session cookie being built.","Inserts a key-value pair into the session.","","","","When true, prevents adding session cookies to responses …","Sets the max-age field in the session cookie being built.","Sets the max-age field in the session cookie being built.","Sets the name field in the session cookie being built.","","Sets the path field in the session cookie being built.","Construct new private CookieSession instance.","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 …","Sets the same_site field in the session cookie being built.","Sets the secure field in the session cookie being built.","Adds the given key-value pairs to the session on the …","Construct new signed CookieSession instance.","","","","","","","","","","","","",""],"i":[1,0,1,1,0,0,1,0,2,3,1,2,3,1,3,1,1,1,2,3,1,2,2,1,2,3,1,3,3,3,4,2,3,2,3,1,2,2,2,2,2,2,2,3,3,3,3,2,2,3,2,1,2,3,1,2,3,1,2,3,1,2,3,1],"f":[null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["sessionstatus",4]],[[]],[[],["sessionstatus",4]],[[["into",8,["string"]],["string",3]],["cookiesession",3]],[[],[["hashmap",3,["string","string"]],["ref",3,["hashmap"]]]],[[["sessionstatus",4]],["bool",15]],[[["i64",15]],["cookiesession",3]],[[["duration",3]],["cookiesession",3]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[["payload",4],["httprequest",3]]],[[["str",15]],[["option",4],["error",3],["result",4,["option","error"]]]],[[["serviceresponse",3]]],[[],["session",3]],[[["bool",15]],["cookiesession",3]],[[],[["result",4,["error"]],["error",3]]],[[]],[[]],[[]],[[["bool",15]],["cookiesession",3]],[[["i64",15]],["cookiesession",3]],[[["duration",3]],["cookiesession",3]],[[["into",8,["string"]],["string",3]],["cookiesession",3]],[[]],[[["into",8,["string"]],["string",3]],["cookiesession",3]],[[],["cookiesession",3]],[[]],[[["str",15]],[["string",3],["option",4,["string"]]]],[[["str",15]],[["option",4,["result"]],["result",4,["string"]]]],[[]],[[["samesite",4]],["cookiesession",3]],[[["bool",15]],["cookiesession",3]],[[["servicerequest",3]]],[[],["cookiesession",3]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]]],"p":[[4,"SessionStatus"],[3,"CookieSession"],[3,"Session"],[8,"UserSession"]]},\ +"actix_web_httpauth":{"doc":"HTTP authentication schemes for actix-web.","t":[0,0,0,8,8,3,16,16,16,0,0,11,11,11,11,11,11,11,11,10,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,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,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","AuthExtractor","AuthExtractorConfig","AuthenticationError","Error","Future","Inner","basic","bearer","borrow","borrow_mut","challenge_mut","error_response","fmt","fmt","from","from","from_service_request","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","from_service_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","from_service_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_header_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_header_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 by types that can extract HTTP …","Trait implemented for types that provides configuration …","Authentication error returned by authentication extractors.","The associated error which can be returned.","Future that resolves into extracted credentials type.","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.","","","","","","Parse the authentication credentials from the actix’ …","","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 …","","","","","","","","","","","","","","","","","","","","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, …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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 the 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","","","","","","","","","","","","","","","","","","Converts the challenge into a bytes suitable for HTTP …","","","","","","","","Challenge for WWW-Authenticate header with HTTP Basic auth …","","","","","","","","","","","","","","","","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 RFC6750, …","Provides the error_description attribute, as defined in …","Provides the error_uri attribute, as defined in RFC6750, …","Consumes the builder and returns built Bearer instance.","","","","","","","","","","","","Provides the realm attribute, as defined in RFC2617","Provides the scope attribute, as defined in RFC6749, …","","","","","","","","","","","","Middleware for checking HTTP authentication.","Construct HttpAuthentication middleware for the HTTP “…","Construct HttpAuthentication middleware for the HTTP “…","","","","","","","","","","","","","","Construct HttpAuthentication middleware with the provided …"],"i":[0,0,0,0,0,0,1,1,2,0,0,3,3,3,3,3,3,3,3,1,3,2,3,3,3,3,3,3,3,3,3,3,3,0,0,4,4,5,4,5,4,5,4,5,4,4,5,4,5,5,5,4,5,4,5,4,4,5,4,5,4,5,4,5,5,4,5,0,0,0,6,6,6,7,7,8,6,7,8,6,7,8,6,7,8,6,6,7,6,6,7,8,6,6,7,8,6,8,8,6,6,7,8,6,7,6,7,7,6,7,8,6,6,8,7,8,6,7,8,6,7,8,6,7,8,6,0,0,0,9,0,0,9,9,9,0,0,9,9,10,10,9,10,11,12,9,10,11,12,10,11,12,10,11,12,10,11,12,10,10,11,12,10,11,12,9,9,10,10,11,11,12,12,9,9,9,9,10,10,10,11,12,10,10,9,10,11,12,10,10,10,11,12,11,12,13,10,11,12,10,11,12,11,9,10,11,12,9,10,11,12,12,9,10,11,12,9,10,11,12,10,10,11,12,9,10,11,12,11,9,10,11,12,14,15,16,17,18,0,0,0,0,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,0,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,6,6,6,21,22,21,22,22,22,22,22,21,22,22,22,21,21,21,21,21,22,22,21,22,22,22,21,22,22,22,21,21,22,22,21,22,21,22,22,21,22,21,22,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23],"f":[null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[],["httpresponse",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[["servicerequest",3]]],[[]],[[]],[[],["authenticationerror",3]],[[],["statuscode",3]],[[],["statuscode",3]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],[[["error",4]]],[[]],[[]],null,null,[[],["challenge",3]],[[]],[[]],[[]],[[]],[[],["config",3]],[[],["basicauth",3]],[[]],[[]],[[],["config",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[["httprequest",3],["payload",4]]],[[["servicerequest",3]]],[[]],[[]],[[]],[[],[["cow",4],["option",4,["cow"]]]],[[],["config",3]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["cow",4]],[[]],[[]],null,null,null,null,null,null,[[],["bearer",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["config",3]],[[],["bearerauth",3]],[[],["error",4]],[[]],[[]],[[]],[[["error",4]],["ordering",4]],[[],["config",3]],[[["error",4]],["bool",15]],[[],["bool",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[["httprequest",3],["payload",4]]],[[["servicerequest",3]]],[[],["u64",15]],[[]],[[]],[[]],[[]],[[]],[[["error",4]],[["ordering",4],["option",4,["ordering"]]]],[[["into",8,["cow"]],["cow",4,["str"]]],["config",3]],[[["into",8,["cow"]],["cow",4,["str"]]],["config",3]],[[],["statuscode",3]],[[]],[[]],[[]],[[],["string",3]],[[],["str",15]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["authorization",3]],[[],["basic",3]],[[],["bearer",3]],[[]],[[]],[[]],[[["authorization",3]],["ordering",4]],[[["basic",3]],["ordering",4]],[[["bearer",3]],["ordering",4]],[[],["authorization",3]],[[["authorization",3]],["bool",15]],[[["basic",3]],["bool",15]],[[["bearer",3]],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["decodeerror",4]]],[[]],[[["tostrerror",3]]],[[["utf8error",3]]],[[["never",15]]],[[]],[[],["authorization",3]],[[]],[[]],[[],["u64",15]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["headername",3]],[[["authorization",3]],["bool",15]],[[["basic",3]],["bool",15]],[[["bearer",3]],["bool",15]],[[["option",4]],["basic",3]],[[],["bearer",3]],[[["headervalue",3]],[["result",4,["parseerror"]],["parseerror",4]]],[[],[["parseerror",4],["result",4,["parseerror"]]]],[[["headervalue",3]],[["result",4,["parseerror"]],["parseerror",4]]],[[["headervalue",3]],[["result",4,["parseerror"]],["parseerror",4]]],[[["authorization",3]],[["ordering",4],["option",4,["ordering"]]]],[[["basic",3]],[["ordering",4],["option",4,["ordering"]]]],[[["bearer",3]],[["ordering",4],["option",4,["ordering"]]]],[[],[["cow",4],["option",4,["cow"]]]],[[],[["option",4,["error"]],["error",8]]],[[]],[[]],[[]],[[],["string",3]],[[],["string",3]],[[],["string",3]],[[],["string",3]],[[],["cow",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],[["headervalue",3],["result",4,["headervalue"]]]],[[],[["headervalue",3],["result",4,["headervalue"]]]],[[],[["result",4,["headervalue"]],["headervalue",3]]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["cow",4]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,[[]],[[]],[[],["wwwauthenticate",3]],[[]],[[["wwwauthenticate",3]],["ordering",4]],[[],["wwwauthenticate",3]],[[["wwwauthenticate",3]],["bool",15]],[[],["bool",15]],[[["formatter",3]],["result",6]],[[]],[[],["u64",15]],[[]],[[]],[[],["headername",3]],[[["wwwauthenticate",3]],["bool",15]],[[],[["parseerror",4],["result",4,["parseerror"]]]],[[["wwwauthenticate",3]],[["ordering",4],["option",4,["ordering"]]]],[[],["bytes",3]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],[["headervalue",3],["result",4,["headervalue"]]]],[[],["typeid",3]],[[]],null,[[]],[[]],[[],["basic",3]],[[]],[[["basic",3]],["ordering",4]],[[],["basic",3]],[[["basic",3]],["bool",15]],[[],["bool",15]],[[["formatter",3]],[["error",3],["result",4,["error"]]]],[[["formatter",3]],["result",6]],[[]],[[],["u64",15]],[[]],[[]],[[["basic",3]],["bool",15]],[[],["basic",3]],[[["basic",3]],[["ordering",4],["option",4,["ordering"]]]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],[["result",4,["headervalue"]],["headervalue",3]]],[[],["typeid",3]],[[]],[[],["basic",3]],null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[],["bearerbuilder",3]],[[],["bearer",3]],[[]],[[["bearer",3]],["ordering",4]],[[],["bearerbuilder",3]],[[],["bearer",3]],[[["bearer",3]],["bool",15]],[[],["bool",15]],[[["error",4]]],[[]],[[]],[[],["bearer",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],[["error",3],["result",4,["error"]]]],[[]],[[]],[[],["u64",15]],[[]],[[]],[[]],[[["bearer",3]],["bool",15]],[[["bearer",3]],[["ordering",4],["option",4,["ordering"]]]],[[]],[[]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],[["result",4,["headervalue"]],["headervalue",3]]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[],["httpauthentication",3]],[[]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],[[],["httpauthentication",3]]],"p":[[8,"AuthExtractor"],[8,"AuthExtractorConfig"],[3,"AuthenticationError"],[3,"Config"],[3,"BasicAuth"],[4,"Error"],[3,"Config"],[3,"BearerAuth"],[4,"ParseError"],[3,"Authorization"],[3,"Basic"],[3,"Bearer"],[8,"Scheme"],[13,"MissingField"],[13,"ToStrError"],[13,"Base64DecodeError"],[13,"Utf8Error"],[3,"WwwAuthenticate"],[8,"Challenge"],[3,"Basic"],[3,"BearerBuilder"],[3,"Bearer"],[3,"HttpAuthentication"]]}\ }'); if (window.initSearch) {window.initSearch(searchIndex)}; \ No newline at end of file diff --git a/src/actix_cors/all_or_some.rs.html b/src/actix_cors/all_or_some.rs.html index 4f29fd001..1cfbcd459 100644 --- a/src/actix_cors/all_or_some.rs.html +++ b/src/actix_cors/all_or_some.rs.html @@ -65,36 +65,36 @@ /// Default as `AllOrSome::All`. impl<T> Default for AllOrSome<T> { - fn default() -> Self { + fn default() -> Self { AllOrSome::All } } impl<T> AllOrSome<T> { /// Returns whether this is an `All` variant. - pub fn is_all(&self) -> bool { + pub fn is_all(&self) -> bool { matches!(self, AllOrSome::All) } /// Returns whether this is a `Some` variant. #[allow(dead_code)] - pub fn is_some(&self) -> bool { + pub fn is_some(&self) -> bool { !self.is_all() } /// Provides a shared reference to `T` if variant is `Some`. - pub fn as_ref(&self) -> Option<&T> { + pub fn as_ref(&self) -> Option<&T> { match *self { - AllOrSome::All => None, - AllOrSome::Some(ref t) => Some(t), + AllOrSome::All => None, + AllOrSome::Some(ref t) => Some(t), } } /// Provides a mutable reference to `T` if variant is `Some`. - pub fn as_mut(&mut self) -> Option<&mut T> { + pub fn as_mut(&mut self) -> Option<&mut T> { match *self { - AllOrSome::All => None, - AllOrSome::Some(ref mut t) => Some(t), + AllOrSome::All => None, + AllOrSome::Some(ref mut t) => Some(t), } } } diff --git a/src/actix_cors/builder.rs.html b/src/actix_cors/builder.rs.html index beed8b217..049007e79 100644 --- a/src/actix_cors/builder.rs.html +++ b/src/actix_cors/builder.rs.html @@ -617,9 +617,45 @@ 617 618 619 -
    use std::{collections::HashSet, convert::TryInto, iter::FromIterator, rc::Rc};
    +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
    +
    use std::{
    +    collections::HashSet, convert::TryInto, error::Error as StdError, iter::FromIterator, rc::Rc,
    +};
     
     use actix_web::{
    +    body::MessageBody,
         dev::{RequestHead, Service, ServiceRequest, ServiceResponse, Transform},
         error::{Error, Result},
         http::{self, header::HeaderName, Error as HttpError, HeaderValue, Method, Uri},
    @@ -637,7 +673,7 @@
     fn cors<'a>(
         inner: &'a mut Rc<Inner>,
         err: &Option<Either<http::Error, CorsError>>,
    -) -> Option<&'a mut Inner> {
    +) -> Option<&'a mut Inner> {
         if err.is_some() {
             return None;
         }
    @@ -698,7 +734,7 @@
         ///
         /// *All* origins, methods, request headers and exposed headers allowed. Credentials supported.
         /// Max age 1 hour. Does not send wildcard.
    -    pub fn permissive() -> Self {
    +    pub fn permissive() -> Self {
             let inner = Inner {
                 allowed_origins: AllOrSome::All,
                 allowed_origins_fns: smallvec![],
    @@ -727,7 +763,7 @@
         /// Resets allowed origin list to a state where any origin is accepted.
         ///
         /// See [`Cors::allowed_origin`] for more info on allowed origins.
    -    pub fn allow_any_origin(mut self) -> Cors {
    +    pub fn allow_any_origin(mut self) -> Cors {
             if let Some(cors) = cors(&mut self.inner, &self.error) {
                 cors.allowed_origins = AllOrSome::All;
             }
    @@ -759,15 +795,15 @@
         /// - If supplied origin is a wildcard (`*`). [`Cors::send_wildcard`] should be used instead.
         ///
         /// [Fetch Standard]: https://fetch.spec.whatwg.org/#origin-header
    -    pub fn allowed_origin(mut self, origin: &str) -> Cors {
    +    pub fn allowed_origin(mut self, origin: &str) -> Cors {
             if let Some(cors) = cors(&mut self.inner, &self.error) {
                 match TryInto::<Uri>::try_into(origin) {
    -                Ok(_) if origin == "*" => {
    +                Ok(_) if origin == "*" => {
                         error!("Wildcard in `allowed_origin` is not allowed. Use `send_wildcard`.");
                         self.error = Some(Either::Right(CorsError::WildcardOrigin));
                     }
     
    -                Ok(_) => {
    +                Ok(_) => {
                         if cors.allowed_origins.is_all() {
                             cors.allowed_origins = AllOrSome::Some(HashSet::with_capacity(8));
                         }
    @@ -779,7 +815,7 @@
                         }
                     }
     
    -                Err(err) => {
    +                Err(err) => {
                         self.error = Some(Either::Left(err.into()));
                     }
                 }
    @@ -796,9 +832,9 @@
         ///
         /// If the function returns `true`, the client's `Origin` request header will be echoed back
         /// into the `Access-Control-Allow-Origin` response header.
    -    pub fn allowed_origin_fn<F>(mut self, f: F) -> Cors
    +    pub fn allowed_origin_fn<F>(mut self, f: F) -> Cors
         where
    -        F: (Fn(&HeaderValue, &RequestHead) -> bool) + 'static,
    +        F: (Fn(&HeaderValue, &RequestHead) -> bool) + 'static,
         {
             if let Some(cors) = cors(&mut self.inner, &self.error) {
                 cors.allowed_origins_fns.push(OriginFn {
    @@ -812,7 +848,7 @@
         /// Resets allowed methods list to all methods.
         ///
         /// See [`Cors::allowed_methods`] for more info on allowed methods.
    -    pub fn allow_any_method(mut self) -> Cors {
    +    pub fn allow_any_method(mut self) -> Cors {
             if let Some(cors) = cors(&mut self.inner, &self.error) {
                 cors.allowed_methods = ALL_METHODS_SET.clone();
             }
    @@ -828,7 +864,7 @@
         /// Defaults to `[GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE]`
         ///
         /// [Fetch Standard CORS protocol]: https://fetch.spec.whatwg.org/#http-cors-protocol
    -    pub fn allowed_methods<U, M>(mut self, methods: U) -> Cors
    +    pub fn allowed_methods<U, M>(mut self, methods: U) -> Cors
         where
             U: IntoIterator<Item = M>,
             M: TryInto<Method>,
    @@ -837,11 +873,11 @@
             if let Some(cors) = cors(&mut self.inner, &self.error) {
                 for m in methods {
                     match m.try_into() {
    -                    Ok(method) => {
    +                    Ok(method) => {
                             cors.allowed_methods.insert(method);
                         }
     
    -                    Err(err) => {
    +                    Err(err) => {
                             self.error = Some(Either::Left(err.into()));
                             break;
                         }
    @@ -855,7 +891,7 @@
         /// Resets allowed request header list to a state where any header is accepted.
         ///
         /// See [`Cors::allowed_headers`] for more info on allowed request headers.
    -    pub fn allow_any_header(mut self) -> Cors {
    +    pub fn allow_any_header(mut self) -> Cors {
             if let Some(cors) = cors(&mut self.inner, &self.error) {
                 cors.allowed_headers = AllOrSome::All;
             }
    @@ -866,14 +902,14 @@
         /// Add an allowed request header.
         ///
         /// See [`Cors::allowed_headers`] for more info on allowed request headers.
    -    pub fn allowed_header<H>(mut self, header: H) -> Cors
    +    pub fn allowed_header<H>(mut self, header: H) -> Cors
         where
             H: TryInto<HeaderName>,
             <H as TryInto<HeaderName>>::Error: Into<HttpError>,
         {
             if let Some(cors) = cors(&mut self.inner, &self.error) {
                 match header.try_into() {
    -                Ok(method) => {
    +                Ok(method) => {
                         if cors.allowed_headers.is_all() {
                             cors.allowed_headers = AllOrSome::Some(HashSet::with_capacity(8));
                         }
    @@ -883,7 +919,7 @@
                         }
                     }
     
    -                Err(err) => self.error = Some(Either::Left(err.into())),
    +                Err(err) => self.error = Some(Either::Left(err.into())),
                 }
             }
     
    @@ -900,7 +936,7 @@
         /// Defaults to `All`.
         ///
         /// [Fetch Standard CORS protocol]: https://fetch.spec.whatwg.org/#http-cors-protocol
    -    pub fn allowed_headers<U, H>(mut self, headers: U) -> Cors
    +    pub fn allowed_headers<U, H>(mut self, headers: U) -> Cors
         where
             U: IntoIterator<Item = H>,
             H: TryInto<HeaderName>,
    @@ -909,7 +945,7 @@
             if let Some(cors) = cors(&mut self.inner, &self.error) {
                 for h in headers {
                     match h.try_into() {
    -                    Ok(method) => {
    +                    Ok(method) => {
                             if cors.allowed_headers.is_all() {
                                 cors.allowed_headers = AllOrSome::Some(HashSet::with_capacity(8));
                             }
    @@ -918,7 +954,7 @@
                                 headers.insert(method);
                             }
                         }
    -                    Err(err) => {
    +                    Err(err) => {
                             self.error = Some(Either::Left(err.into()));
                             break;
                         }
    @@ -932,7 +968,7 @@
         /// Resets exposed response header list to a state where any header is accepted.
         ///
         /// See [`Cors::expose_headers`] for more info on exposed response headers.
    -    pub fn expose_any_header(mut self) -> Cors {
    +    pub fn expose_any_header(mut self) -> Cors {
             if let Some(cors) = cors(&mut self.inner, &self.error) {
                 cors.expose_headers = AllOrSome::All;
             }
    @@ -947,7 +983,7 @@
         /// This defaults to an empty set.
         ///
         /// [Fetch Standard CORS protocol]: https://fetch.spec.whatwg.org/#http-cors-protocol
    -    pub fn expose_headers<U, H>(mut self, headers: U) -> Cors
    +    pub fn expose_headers<U, H>(mut self, headers: U) -> Cors
         where
             U: IntoIterator<Item = H>,
             H: TryInto<HeaderName>,
    @@ -955,7 +991,7 @@
         {
             for h in headers {
                 match h.try_into() {
    -                Ok(header) => {
    +                Ok(header) => {
                         if let Some(cors) = cors(&mut self.inner, &self.error) {
                             if cors.expose_headers.is_all() {
                                 cors.expose_headers = AllOrSome::Some(HashSet::with_capacity(8));
    @@ -965,7 +1001,7 @@
                             }
                         }
                     }
    -                Err(err) => {
    +                Err(err) => {
                         self.error = Some(Either::Left(err.into()));
                         break;
                     }
    @@ -982,7 +1018,7 @@
         /// Pass a number (of seconds) or use None to disable sending max age header.
         ///
         /// [Fetch Standard CORS protocol]: https://fetch.spec.whatwg.org/#http-cors-protocol
    -    pub fn max_age(mut self, max_age: impl Into<Option<usize>>) -> Cors {
    +    pub fn max_age(mut self, max_age: impl Into<Option<usize>>) -> Cors {
             if let Some(cors) = cors(&mut self.inner, &self.error) {
                 cors.max_age = max_age.into()
             }
    @@ -1001,7 +1037,7 @@
         /// in an `CorsError::CredentialsWithWildcardOrigin` error during actix launch or runtime.
         ///
         /// Defaults to `false`.
    -    pub fn send_wildcard(mut self) -> Cors {
    +    pub fn send_wildcard(mut self) -> Cors {
             if let Some(cors) = cors(&mut self.inner, &self.error) {
                 cors.send_wildcard = true
             }
    @@ -1024,7 +1060,7 @@
         /// to send wildcards (`*`); this is not allowed by the CORS protocol.
         ///
         /// [Fetch Standard CORS protocol]: https://fetch.spec.whatwg.org/#http-cors-protocol
    -    pub fn supports_credentials(mut self) -> Cors {
    +    pub fn supports_credentials(mut self) -> Cors {
             if let Some(cors) = cors(&mut self.inner, &self.error) {
                 cors.supports_credentials = true
             }
    @@ -1042,7 +1078,7 @@
         /// informs CDNs and other caches that the CORS headers are dynamic, and cannot be cached.
         ///
         /// By default, `Vary` header support is enabled.
    -    pub fn disable_vary_header(mut self) -> Cors {
    +    pub fn disable_vary_header(mut self) -> Cors {
             if let Some(cors) = cors(&mut self.inner, &self.error) {
                 cors.vary_header = false
             }
    @@ -1056,7 +1092,7 @@
         /// This is useful for application level middleware.
         ///
         /// By default *preflight* support is enabled.
    -    pub fn disable_preflight(mut self) -> Cors {
    +    pub fn disable_preflight(mut self) -> Cors {
             if let Some(cors) = cors(&mut self.inner, &self.error) {
                 cors.preflight = false
             }
    @@ -1070,7 +1106,7 @@
         ///
         /// *No* allowed origins, methods, request headers or exposed headers. Credentials
         /// not supported. No max age (will use browser's default).
    -    fn default() -> Cors {
    +    fn default() -> Cors {
             let inner = Inner {
                 allowed_origins: AllOrSome::Some(HashSet::with_capacity(8)),
                 allowed_origins_fns: smallvec![],
    @@ -1098,10 +1134,12 @@
         }
     }
     
    -impl<S> Transform<S, ServiceRequest> for Cors
    +impl<S, B> Transform<S, ServiceRequest> for Cors
     where
    -    S: Service<ServiceRequest, Response = ServiceResponse, Error = Error>,
    +    S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error>,
         S::Future: 'static,
    +    B: MessageBody + 'static,
    +    B::Error: StdError,
     {
         type Response = ServiceResponse;
         type Error = Error;
    @@ -1109,11 +1147,11 @@
         type Transform = CorsMiddleware<S>;
         type Future = Ready<Result<Self::Transform, Self::InitError>>;
     
    -    fn new_transform(&self, service: S) -> Self::Future {
    +    fn new_transform(&self, service: S) -> Self::Future {
             if let Some(ref err) = self.error {
                 match err {
    -                Either::Left(err) => error!("{}", err),
    -                Either::Right(err) => error!("{}", err),
    +                Either::Left(err) => error!("{}", err),
    +                Either::Right(err) => error!("{}", err),
                 }
     
                 return future::err(());
    @@ -1131,11 +1169,11 @@
     
             // bake allowed headers value if Some and not empty
             match inner.allowed_headers.as_ref() {
    -            Some(header_set) if !header_set.is_empty() => {
    +            Some(header_set) if !header_set.is_empty() => {
                     let allowed_headers_str = intersperse_header_values(header_set);
                     Rc::make_mut(&mut inner).allowed_headers_baked = Some(allowed_headers_str);
                 }
    -            _ => {}
    +            _ => {}
             }
     
             // bake allowed methods value if not empty
    @@ -1146,11 +1184,11 @@
     
             // bake exposed headers value if Some and not empty
             match inner.expose_headers.as_ref() {
    -            Some(header_set) if !header_set.is_empty() => {
    +            Some(header_set) if !header_set.is_empty() => {
                     let expose_headers_str = intersperse_header_values(header_set);
                     Rc::make_mut(&mut inner).expose_headers_baked = Some(expose_headers_str);
                 }
    -            _ => {}
    +            _ => {}
             }
     
             future::ok(CorsMiddleware { service, inner })
    @@ -1158,7 +1196,7 @@
     }
     
     /// Only call when values are guaranteed to be valid header values and set is not empty.
    -fn intersperse_header_values<T>(val_set: &HashSet<T>) -> HeaderValue
    +fn intersperse_header_values<T>(val_set: &HashSet<T>) -> HeaderValue
     where
         T: AsRef<str>,
     {
    @@ -1179,11 +1217,15 @@
     #[cfg(test)]
     mod test {
         use std::convert::{Infallible, TryInto};
    +    use std::pin::Pin;
    +    use std::task::{Context, Poll};
     
         use actix_web::{
    -        dev::Transform,
    +        body::{BodySize, MessageBody},
    +        dev::{fn_service, Transform},
             http::{HeaderName, StatusCode},
             test::{self, TestRequest},
    +        web::{Bytes, HttpResponse},
         };
     
         use super::*;
    @@ -1228,13 +1270,37 @@
             impl TryInto<HeaderName> for ContentType {
                 type Error = Infallible;
     
    -            fn try_into(self) -> Result<HeaderName, Self::Error> {
    +            fn try_into(self) -> Result<HeaderName, Self::Error> {
                     Ok(HeaderName::from_static("content-type"))
                 }
             }
     
             let _cors = Cors::default().allowed_header(ContentType);
         }
    +
    +    #[actix_rt::test]
    +    async fn middleware_generic_over_body_type() {
    +        struct Foo;
    +
    +        impl MessageBody for Foo {
    +            type Error = std::io::Error;
    +            fn size(&self) -> BodySize {
    +                BodySize::None
    +            }
    +            fn poll_next(
    +                self: Pin<&mut Self>,
    +                _: &mut Context<'_>,
    +            ) -> Poll<Option<Result<Bytes, Self::Error>>> {
    +                Poll::Ready(None)
    +            }
    +        }
    +
    +        let srv = fn_service(|req: ServiceRequest| async move {
    +            Ok(req.into_response(HttpResponse::Ok().message_body(Foo)?))
    +        });
    +
    +        Cors::default().new_transform(srv).await.unwrap();
    +    }
     }
     
    diff --git a/src/actix_cors/error.rs.html b/src/actix_cors/error.rs.html index 21806ced2..04977bca0 100644 --- a/src/actix_cors/error.rs.html +++ b/src/actix_cors/error.rs.html @@ -90,11 +90,11 @@ } impl ResponseError for CorsError { - fn status_code(&self) -> StatusCode { + fn status_code(&self) -> StatusCode { StatusCode::BAD_REQUEST } - fn error_response(&self) -> HttpResponse { + fn error_response(&self) -> HttpResponse { HttpResponse::with_body(StatusCode::BAD_REQUEST, self.to_string().into()) } } diff --git a/src/actix_cors/inner.rs.html b/src/actix_cors/inner.rs.html index b6769278e..e6d2ca476 100644 --- a/src/actix_cors/inner.rs.html +++ b/src/actix_cors/inner.rs.html @@ -342,25 +342,25 @@ #[derive(Clone)] pub(crate) struct OriginFn { - pub(crate) boxed_fn: Rc<dyn Fn(&HeaderValue, &RequestHead) -> bool>, + pub(crate) boxed_fn: Rc<dyn Fn(&HeaderValue, &RequestHead) -> bool>, } impl Default for OriginFn { /// Dummy default for use in tiny_vec. Do not use. - fn default() -> Self { - let boxed_fn: Rc<dyn Fn(&_, &_) -> _> = Rc::new(|_origin, _req_head| false); + fn default() -> Self { + let boxed_fn: Rc<dyn Fn(&_, &_) -> _> = Rc::new(|_origin, _req_head| false); Self { boxed_fn } } } impl fmt::Debug for OriginFn { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.write_str("origin_fn") } } /// Try to parse header value as HTTP method. -fn header_value_try_into_method(hdr: &HeaderValue) -> Option<Method> { +fn header_value_try_into_method(hdr: &HeaderValue) -> Option<Method> { hdr.to_str() .ok() .and_then(|meth| Method::try_from(meth).ok()) @@ -391,20 +391,20 @@ static EMPTY_ORIGIN_SET: Lazy<HashSet<HeaderValue>> = Lazy::new(HashSet::new); impl Inner { - pub(crate) fn validate_origin(&self, req: &RequestHead) -> Result<(), CorsError> { + pub(crate) fn validate_origin(&self, req: &RequestHead) -> Result<(), CorsError> { // return early if all origins are allowed or get ref to allowed origins set #[allow(clippy::mutable_key_type)] let allowed_origins = match &self.allowed_origins { - AllOrSome::All if self.allowed_origins_fns.is_empty() => return Ok(()), - AllOrSome::Some(allowed_origins) => allowed_origins, + AllOrSome::All if self.allowed_origins_fns.is_empty() => return Ok(()), + AllOrSome::Some(allowed_origins) => allowed_origins, // only function origin validators are defined - _ => &EMPTY_ORIGIN_SET, + _ => &EMPTY_ORIGIN_SET, }; // get origin header and try to parse as string match req.headers().get(header::ORIGIN) { // origin header exists and is a string - Some(origin) => { + Some(origin) => { if allowed_origins.contains(origin) || self.validate_origin_fns(origin, req) { Ok(()) } else { @@ -415,23 +415,23 @@ // origin header is missing // note: with our implementation, the origin header is required for OPTIONS request or // else this would be unreachable - None => Err(CorsError::MissingOrigin), + None => Err(CorsError::MissingOrigin), } } /// Accepts origin if _ANY_ functions return true. Only called when Origin exists. - fn validate_origin_fns(&self, origin: &HeaderValue, req: &RequestHead) -> bool { + fn validate_origin_fns(&self, origin: &HeaderValue, req: &RequestHead) -> bool { self.allowed_origins_fns .iter() .any(|origin_fn| (origin_fn.boxed_fn)(origin, req)) } /// Only called if origin exists and always after it's validated. - pub(crate) fn access_control_allow_origin(&self, req: &RequestHead) -> Option<HeaderValue> { + pub(crate) fn access_control_allow_origin(&self, req: &RequestHead) -> Option<HeaderValue> { let origin = req.headers().get(header::ORIGIN); match self.allowed_origins { - AllOrSome::All => { + AllOrSome::All => { if self.send_wildcard { Some(HeaderValue::from_static("*")) } else { @@ -440,7 +440,7 @@ } } - AllOrSome::Some(_) => { + AllOrSome::Some(_) => { // since origin (if it exists) is known to be allowed if this method is called // then cloning the option is all that is required to be used as an echoed back // header value (or omitted if None) @@ -451,7 +451,7 @@ /// Use in preflight checks and therefore operates on header list in /// `Access-Control-Request-Headers` not the actual header set. - pub(crate) fn validate_allowed_method(&self, req: &RequestHead) -> Result<(), CorsError> { + pub(crate) fn validate_allowed_method(&self, req: &RequestHead) -> Result<(), CorsError> { // extract access control header and try to parse as method let request_method = req .headers() @@ -460,25 +460,25 @@ match request_method { // method valid and allowed - Some(Some(method)) if self.allowed_methods.contains(&method) => Ok(()), + Some(Some(method)) if self.allowed_methods.contains(&method) => Ok(()), // method valid but not allowed - Some(Some(_)) => Err(CorsError::MethodNotAllowed), + Some(Some(_)) => Err(CorsError::MethodNotAllowed), // method invalid - Some(_) => Err(CorsError::BadRequestMethod), + Some(_) => Err(CorsError::BadRequestMethod), // method missing - None => Err(CorsError::MissingRequestMethod), + None => Err(CorsError::MissingRequestMethod), } } - pub(crate) fn validate_allowed_headers(&self, req: &RequestHead) -> Result<(), CorsError> { + pub(crate) fn validate_allowed_headers(&self, req: &RequestHead) -> Result<(), CorsError> { // return early if all headers are allowed or get ref to allowed origins set #[allow(clippy::mutable_key_type)] let allowed_headers = match &self.allowed_headers { - AllOrSome::All => return Ok(()), - AllOrSome::Some(allowed_headers) => allowed_headers, + AllOrSome::All => return Ok(()), + AllOrSome::Some(allowed_headers) => allowed_headers, }; // extract access control header as string @@ -490,7 +490,7 @@ match request_headers { // header list is valid string - Some(Ok(headers)) => { + Some(Ok(headers)) => { // the set is ephemeral we take care not to mutate the // inserted keys so this lint exception is acceptable #[allow(clippy::mutable_key_type)] @@ -499,8 +499,8 @@ // try to convert each header name in the comma-separated list for hdr in headers.split(',') { match hdr.trim().try_into() { - Ok(hdr) => request_headers.insert(hdr), - Err(_) => return Err(CorsError::BadRequestHeaders), + Ok(hdr) => request_headers.insert(hdr), + Err(_) => return Err(CorsError::BadRequestHeaders), }; } @@ -518,10 +518,10 @@ } // header list is not a string - Some(Err(_)) => Err(CorsError::BadRequestHeaders), + Some(Err(_)) => Err(CorsError::BadRequestHeaders), // header list missing - None => Ok(()), + None => Ok(()), } } } @@ -538,7 +538,7 @@ use crate::Cors; - fn val_as_str(val: &HeaderValue) -> &str { + fn val_as_str(val: &HeaderValue) -> &str { val.to_str().unwrap() } diff --git a/src/actix_cors/middleware.rs.html b/src/actix_cors/middleware.rs.html index 6330e1594..2613a0811 100644 --- a/src/actix_cors/middleware.rs.html +++ b/src/actix_cors/middleware.rs.html @@ -241,7 +241,7 @@ } impl<S> CorsMiddleware<S> { - fn handle_preflight(inner: &Inner, req: ServiceRequest) -> ServiceResponse { + fn handle_preflight(inner: &Inner, req: ServiceRequest) -> ServiceResponse { if let Err(err) = inner .validate_origin(req.head()) .and_then(|_| inner.validate_allowed_method(req.head())) @@ -285,7 +285,7 @@ req.into_response(res) } - fn augment_response<B>(inner: &Inner, mut res: ServiceResponse<B>) -> ServiceResponse<B> { + fn augment_response<B>(inner: &Inner, mut res: ServiceResponse<B>) -> ServiceResponse<B> { if let Some(origin) = inner.access_control_allow_origin(res.request().head()) { res.headers_mut() .insert(header::ACCESS_CONTROL_ALLOW_ORIGIN, origin); @@ -305,13 +305,13 @@ if inner.vary_header { let value = match res.headers_mut().get(header::VARY) { - Some(hdr) => { + Some(hdr) => { let mut val: Vec<u8> = Vec::with_capacity(hdr.len() + 8); val.extend(hdr.as_bytes()); val.extend(b", Origin"); val.try_into().unwrap() } - None => HeaderValue::from_static("Origin"), + None => HeaderValue::from_static("Origin"), }; res.headers_mut().insert(header::VARY, value); @@ -339,8 +339,8 @@ actix_service::forward_ready!(service); - fn call(&self, req: ServiceRequest) -> Self::Future { - if self.inner.preflight && req.method() == Method::OPTIONS { + fn call(&self, req: ServiceRequest) -> Self::Future { + if self.inner.preflight && req.method() == Method::OPTIONS { let inner = Rc::clone(&self.inner); let res = Self::handle_preflight(&inner, req); Either::Left(ok(res)) diff --git a/src/actix_identity/cookie.rs.html b/src/actix_identity/cookie.rs.html index 010fba3ad..cf9996441 100644 --- a/src/actix_identity/cookie.rs.html +++ b/src/actix_identity/cookie.rs.html @@ -867,7 +867,7 @@ } impl CookieIdentityInner { - fn new(key: &[u8]) -> CookieIdentityInner { + fn new(key: &[u8]) -> CookieIdentityInner { let key_v2: Vec<u8> = [key, &[1, 0, 0, 0]].concat(); CookieIdentityInner { @@ -889,7 +889,7 @@ &self, resp: &mut ServiceResponse<B>, value: Option<CookieValue>, - ) -> Result<()> { + ) -> Result<()> { let add_cookie = value.is_some(); let val = value .map(|val| { @@ -945,7 +945,7 @@ Ok(()) } - fn load(&self, req: &ServiceRequest) -> Option<CookieValue> { + fn load(&self, req: &ServiceRequest) -> Option<CookieValue> { let cookie = req.cookie(&self.name)?; let mut jar = CookieJar::new(); jar.add_original(cookie.clone()); @@ -969,7 +969,7 @@ }) } - fn parse(&self, cookie: Cookie<'_>) -> Option<CookieValue> { + fn parse(&self, cookie: Cookie<'_>) -> Option<CookieValue> { let value: CookieValue = serde_json::from_str(cookie.value()).ok()?; let now = SystemTime::now(); @@ -992,15 +992,15 @@ Some(value) } - fn legacy_supported(&self) -> bool { + fn legacy_supported(&self) -> bool { self.visit_deadline.is_none() && self.login_deadline.is_none() } - fn always_update_cookie(&self) -> bool { + fn always_update_cookie(&self) -> bool { self.visit_deadline.is_some() } - fn requires_oob_data(&self) -> bool { + fn requires_oob_data(&self) -> bool { self.login_deadline.is_some() } } @@ -1037,49 +1037,49 @@ /// /// # Panics /// Panics if `key` is less than 32 bytes in length.. - pub fn new(key: &[u8]) -> CookieIdentityPolicy { + pub fn new(key: &[u8]) -> CookieIdentityPolicy { CookieIdentityPolicy(Rc::new(CookieIdentityInner::new(key))) } /// Sets the name of issued cookies. - pub fn name(mut self, value: impl Into<String>) -> CookieIdentityPolicy { + pub fn name(mut self, value: impl Into<String>) -> CookieIdentityPolicy { self.inner_mut().name = value.into(); self } /// Sets the `Path` attribute of issued cookies. - pub fn path(mut self, value: impl Into<String>) -> CookieIdentityPolicy { + pub fn path(mut self, value: impl Into<String>) -> CookieIdentityPolicy { self.inner_mut().path = value.into(); self } /// Sets the `Domain` attribute of issued cookies. - pub fn domain(mut self, value: impl Into<String>) -> CookieIdentityPolicy { + pub fn domain(mut self, value: impl Into<String>) -> CookieIdentityPolicy { self.inner_mut().domain = Some(value.into()); self } /// Sets the `Secure` attribute of issued cookies. - pub fn secure(mut self, value: bool) -> CookieIdentityPolicy { + pub fn secure(mut self, value: bool) -> CookieIdentityPolicy { self.inner_mut().secure = value; self } /// Sets the `Max-Age` attribute of issued cookies. - pub fn max_age(mut self, value: Duration) -> CookieIdentityPolicy { + pub fn max_age(mut self, value: Duration) -> CookieIdentityPolicy { self.inner_mut().max_age = Some(value); self } /// Sets the `Max-Age` attribute of issued cookies with given number of seconds. - pub fn max_age_secs(self, seconds: i64) -> CookieIdentityPolicy { + pub fn max_age_secs(self, seconds: i64) -> CookieIdentityPolicy { self.max_age(Duration::seconds(seconds)) } /// Sets the `HttpOnly` attribute of issued cookies. /// /// By default, the `HttpOnly` attribute is omitted from issued cookies. - pub fn http_only(mut self, http_only: bool) -> Self { + pub fn http_only(mut self, http_only: bool) -> Self { self.inner_mut().http_only = Some(http_only); self } @@ -1087,7 +1087,7 @@ /// Sets the `SameSite` attribute of issued cookies. /// /// By default, the `SameSite` attribute is omitted from issued cookies. - pub fn same_site(mut self, same_site: SameSite) -> Self { + pub fn same_site(mut self, same_site: SameSite) -> Self { self.inner_mut().same_site = Some(same_site); self } @@ -1099,7 +1099,7 @@ /// visitation timestamp. /// /// By default, visit deadline is disabled. - pub fn visit_deadline(mut self, deadline: Duration) -> CookieIdentityPolicy { + pub fn visit_deadline(mut self, deadline: Duration) -> CookieIdentityPolicy { self.inner_mut().visit_deadline = Some(deadline); self } @@ -1112,12 +1112,12 @@ /// into the issued cookies, making it immutable to users. /// /// By default, login deadline is disabled. - pub fn login_deadline(mut self, deadline: Duration) -> CookieIdentityPolicy { + pub fn login_deadline(mut self, deadline: Duration) -> CookieIdentityPolicy { self.inner_mut().login_deadline = Some(deadline); self } - fn inner_mut(&mut self) -> &mut CookieIdentityInner { + fn inner_mut(&mut self) -> &mut CookieIdentityInner { Rc::get_mut(&mut self.0).unwrap() } } @@ -1126,7 +1126,7 @@ type Future = Ready<Result<Option<String>, Error>>; type ResponseFuture = Ready<Result<(), Error>>; - fn from_request(&self, req: &mut ServiceRequest) -> Self::Future { + fn from_request(&self, req: &mut ServiceRequest) -> Self::Future { ready(Ok(self.0.load(req).map(|value| { let CookieValue { identity, @@ -1148,7 +1148,7 @@ id: Option<String>, changed: bool, res: &mut ServiceResponse<B>, - ) -> Self::ResponseFuture { + ) -> Self::ResponseFuture { let _ = if changed { let login_timestamp = SystemTime::now(); @@ -1208,7 +1208,7 @@ identity: &'static str, login_timestamp: Option<SystemTime>, visit_timestamp: Option<SystemTime>, - ) -> Cookie<'static> { + ) -> Cookie<'static> { let mut jar = CookieJar::new(); let key: Vec<u8> = COOKIE_KEY_MASTER .iter() @@ -1259,18 +1259,18 @@ let t30sec_ago = now - Duration::seconds(30); match login_timestamp { - LoginTimestampCheck::NoTimestamp => assert_eq!(cv.login_timestamp, None), - LoginTimestampCheck::NewTimestamp => assert!( + LoginTimestampCheck::NoTimestamp => assert_eq!(cv.login_timestamp, None), + LoginTimestampCheck::NewTimestamp => assert!( t30sec_ago <= cv.login_timestamp.unwrap() && cv.login_timestamp.unwrap() <= now ), - LoginTimestampCheck::OldTimestamp(old_timestamp) => { + LoginTimestampCheck::OldTimestamp(old_timestamp) => { assert_eq!(cv.login_timestamp, Some(old_timestamp)) } } match visit_timestamp { - VisitTimeStampCheck::NoTimestamp => assert_eq!(cv.visit_timestamp, None), - VisitTimeStampCheck::NewTimestamp => assert!( + VisitTimeStampCheck::NoTimestamp => assert_eq!(cv.visit_timestamp, None), + VisitTimeStampCheck::NewTimestamp => assert!( t30sec_ago <= cv.visit_timestamp.unwrap() && cv.visit_timestamp.unwrap() <= now ), } @@ -1392,7 +1392,7 @@ assert_eq!(SameSite::None, c.same_site().unwrap()); } - fn legacy_login_cookie(identity: &'static str) -> Cookie<'static> { + fn legacy_login_cookie(identity: &'static str) -> Cookie<'static> { let mut jar = CookieJar::new(); jar.private_mut(&Key::derive_from(&COOKIE_KEY_MASTER)) .add(Cookie::new(COOKIE_NAME, identity)); diff --git a/src/actix_identity/identity.rs.html b/src/actix_identity/identity.rs.html index 28926a9ad..98bae8601 100644 --- a/src/actix_identity/identity.rs.html +++ b/src/actix_identity/identity.rs.html @@ -148,7 +148,7 @@ impl Identity { /// Return the claimed identity of the user associated request or `None` if no identity can be /// found associated with the request. - pub fn identity(&self) -> Option<String> { + pub fn identity(&self) -> Option<String> { Identity::get_identity(&self.0.extensions()) } @@ -168,7 +168,7 @@ } } - pub(crate) fn get_identity(extensions: &Extensions) -> Option<String> { + pub(crate) fn get_identity(extensions: &Extensions) -> Option<String> { let id = extensions.get::<IdentityItem>()?; id.id.clone() } @@ -196,7 +196,7 @@ type Future = Ready<Result<Identity, Error>>; #[inline] - fn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future { + fn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future { ready(Ok(Identity(req.clone()))) } } diff --git a/src/actix_identity/lib.rs.html b/src/actix_identity/lib.rs.html index 9116ad1e2..a8428275a 100644 --- a/src/actix_identity/lib.rs.html +++ b/src/actix_identity/lib.rs.html @@ -222,7 +222,7 @@ type ResponseFuture: Future<Output = Result<(), Error>>; /// Parse the session from request and load data from a service identity. - fn from_request(&self, req: &mut ServiceRequest) -> Self::Future; + fn from_request(&self, req: &mut ServiceRequest) -> Self::Future; /// Write changes to response fn to_response<B>( @@ -230,7 +230,7 @@ identity: Option<String>, changed: bool, response: &mut ServiceResponse<B>, - ) -> Self::ResponseFuture; + ) -> Self::ResponseFuture; } /// Helper trait that allows to get Identity. @@ -238,14 +238,14 @@ /// It could be used in middleware but identity policy must be set before any other middleware that /// needs identity. RequestIdentity is implemented both for `ServiceRequest` and `HttpRequest`. pub trait RequestIdentity { - fn get_identity(&self) -> Option<String>; + fn get_identity(&self) -> Option<String>; } impl<T> RequestIdentity for T where T: HttpMessage, { - fn get_identity(&self) -> Option<String> { + fn get_identity(&self) -> Option<String> { Identity::get_identity(&self.extensions()) } } @@ -276,10 +276,10 @@ } pub(crate) async fn create_identity_server< - F: Fn(CookieIdentityPolicy) -> CookieIdentityPolicy + Sync + Send + Clone + 'static, + F: Fn(CookieIdentityPolicy) -> CookieIdentityPolicy + Sync + Send + Clone + 'static, >( f: F, - ) -> impl actix_service::Service< + ) -> impl actix_service::Service< actix_http::Request, Response = ServiceResponse<actix_web::body::Body>, Error = Error, diff --git a/src/actix_identity/middleware.rs.html b/src/actix_identity/middleware.rs.html index 336901853..054323ffd 100644 --- a/src/actix_identity/middleware.rs.html +++ b/src/actix_identity/middleware.rs.html @@ -202,7 +202,7 @@ impl<T> IdentityService<T> { /// Create new identity service with specified backend. - pub fn new(backend: T) -> Self { + pub fn new(backend: T) -> Self { IdentityService { backend: Rc::new(backend), } @@ -223,7 +223,7 @@ type Transform = IdentityServiceMiddleware<S, T>; type Future = Ready<Result<Self::Transform, Self::InitError>>; - fn new_transform(&self, service: S) -> Self::Future { + fn new_transform(&self, service: S) -> Self::Future { ready(Ok(IdentityServiceMiddleware { backend: self.backend.clone(), service: Rc::new(service), @@ -237,7 +237,7 @@ } impl<S, T> Clone for IdentityServiceMiddleware<S, T> { - fn clone(&self) -> Self { + fn clone(&self) -> Self { Self { backend: Rc::clone(&self.backend), service: Rc::clone(&self.service), @@ -259,14 +259,14 @@ actix_service::forward_ready!(service); - fn call(&self, mut req: ServiceRequest) -> Self::Future { + fn call(&self, mut req: ServiceRequest) -> Self::Future { let srv = Rc::clone(&self.service); let backend = Rc::clone(&self.backend); let fut = self.backend.from_request(&mut req); async move { match fut.await { - Ok(id) => { + Ok(id) => { req.extensions_mut() .insert(IdentityItem { id, changed: false }); @@ -275,14 +275,14 @@ if let Some(id) = id { match backend.to_response(id.id, id.changed, &mut res).await { - Ok(_) => Ok(res.map_body(|_, body| AnyBody::from_message(body))), - Err(e) => Ok(res.error_response(e)), + Ok(_) => Ok(res.map_body(|_, body| AnyBody::from_message(body))), + Err(e) => Ok(res.error_response(e)), } } else { Ok(res.map_body(|_, body| AnyBody::from_message(body))) } } - Err(err) => Ok(req.error_response(err)), + Err(err) => Ok(req.error_response(err)), } } .map_ok(|res| res.map_body(|_, body| AnyBody::from_message(body))) @@ -308,7 +308,7 @@ type Future = Ready<Result<Option<String>, Error>>; type ResponseFuture = Ready<Result<(), Error>>; - fn from_request(&self, _: &mut dev::ServiceRequest) -> Self::Future { + fn from_request(&self, _: &mut dev::ServiceRequest) -> Self::Future { ok(Some("test".to_string())) } @@ -317,7 +317,7 @@ _: Option<String>, _: bool, _: &mut dev::ServiceResponse<B>, - ) -> Self::ResponseFuture { + ) -> Self::ResponseFuture { ok(()) } } diff --git a/src/actix_protobuf/lib.rs.html b/src/actix_protobuf/lib.rs.html index 7c949469c..f2581aa1b 100644 --- a/src/actix_protobuf/lib.rs.html +++ b/src/actix_protobuf/lib.rs.html @@ -375,22 +375,22 @@ } impl ResponseError for ProtoBufPayloadError { - fn error_response(&self) -> HttpResponse { + fn error_response(&self) -> HttpResponse { match *self { - ProtoBufPayloadError::Overflow => HttpResponse::PayloadTooLarge().into(), - _ => HttpResponse::BadRequest().into(), + ProtoBufPayloadError::Overflow => HttpResponse::PayloadTooLarge().into(), + _ => HttpResponse::BadRequest().into(), } } } impl From<PayloadError> for ProtoBufPayloadError { - fn from(err: PayloadError) -> ProtoBufPayloadError { + fn from(err: PayloadError) -> ProtoBufPayloadError { ProtoBufPayloadError::Payload(err) } } impl From<ProtoBufDecodeError> for ProtoBufPayloadError { - fn from(err: ProtoBufDecodeError) -> ProtoBufPayloadError { + fn from(err: ProtoBufDecodeError) -> ProtoBufPayloadError { ProtoBufPayloadError::Deserialize(err) } } @@ -400,13 +400,13 @@ impl<T: Message> Deref for ProtoBuf<T> { type Target = T; - fn deref(&self) -> &T { + fn deref(&self) -> &T { &self.0 } } impl<T: Message> DerefMut for ProtoBuf<T> { - fn deref_mut(&mut self) -> &mut T { + fn deref_mut(&mut self) -> &mut T { &mut self.0 } } @@ -415,7 +415,7 @@ where T: fmt::Debug, { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "ProtoBuf: {:?}", self.0) } } @@ -424,7 +424,7 @@ where T: fmt::Display, { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { fmt::Display::fmt(&self.0, f) } } @@ -435,14 +435,14 @@ impl ProtoBufConfig { /// Change max size of payload. By default max size is 256Kb - pub fn limit(&mut self, limit: usize) -> &mut Self { + pub fn limit(&mut self, limit: usize) -> &mut Self { self.limit = limit; self } } impl Default for ProtoBufConfig { - fn default() -> Self { + fn default() -> Self { ProtoBufConfig { limit: 262_144 } } } @@ -456,7 +456,7 @@ type Future = LocalBoxFuture<'static, Result<Self, Error>>; #[inline] - fn from_request(req: &HttpRequest, payload: &mut Payload) -> Self::Future { + fn from_request(req: &HttpRequest, payload: &mut Payload) -> Self::Future { let limit = req .app_data::<ProtoBufConfig>() .map(|c| c.limit) @@ -464,21 +464,21 @@ ProtoBufMessage::new(req, payload) .limit(limit) .map(move |res| match res { - Err(e) => Err(e.into()), - Ok(item) => Ok(ProtoBuf(item)), + Err(e) => Err(e.into()), + Ok(item) => Ok(ProtoBuf(item)), }) .boxed_local() } } impl<T: Message + Default> Responder for ProtoBuf<T> { - fn respond_to(self, _: &HttpRequest) -> HttpResponse { + fn respond_to(self, _: &HttpRequest) -> HttpResponse { let mut buf = Vec::new(); match self.0.encode(&mut buf) { - Ok(()) => HttpResponse::Ok() + Ok(()) => HttpResponse::Ok() .content_type("application/protobuf") .body(buf), - Err(err) => HttpResponse::from_error(Error::from(ProtoBufPayloadError::Serialize(err))), + Err(err) => HttpResponse::from_error(Error::from(ProtoBufPayloadError::Serialize(err))), } } } @@ -493,7 +493,7 @@ impl<T: Message + Default> ProtoBufMessage<T> { /// Create `ProtoBufMessage` for request. - pub fn new(req: &HttpRequest, payload: &mut Payload) -> Self { + pub fn new(req: &HttpRequest, payload: &mut Payload) -> Self { if req.content_type() != "application/protobuf" { return ProtoBufMessage { limit: 262_144, @@ -523,7 +523,7 @@ } /// Change max size of payload. By default max size is 256Kb - pub fn limit(mut self, limit: usize) -> Self { + pub fn limit(mut self, limit: usize) -> Self { self.limit = limit; self } @@ -532,7 +532,7 @@ impl<T: Message + Default + 'static> Future for ProtoBufMessage<T> { type Output = Result<T, ProtoBufPayloadError>; - fn poll(mut self: Pin<&mut Self>, task: &mut task::Context<'_>) -> Poll<Self::Output> { + fn poll(mut self: Pin<&mut Self>, task: &mut task::Context<'_>) -> Poll<Self::Output> { if let Some(ref mut fut) = self.fut { return Pin::new(fut).poll(task); } @@ -575,11 +575,11 @@ } pub trait ProtoBufResponseBuilder { - fn protobuf<T: Message>(&mut self, value: T) -> Result<HttpResponse, Error>; + fn protobuf<T: Message>(&mut self, value: T) -> Result<HttpResponse, Error>; } impl ProtoBufResponseBuilder for HttpResponseBuilder { - fn protobuf<T: Message>(&mut self, value: T) -> Result<HttpResponse, Error> { + fn protobuf<T: Message>(&mut self, value: T) -> Result<HttpResponse, Error> { self.insert_header((CONTENT_TYPE, "application/protobuf")); let mut body = Vec::new(); @@ -597,15 +597,15 @@ use actix_web::test::TestRequest; impl PartialEq for ProtoBufPayloadError { - fn eq(&self, other: &ProtoBufPayloadError) -> bool { + fn eq(&self, other: &ProtoBufPayloadError) -> bool { match *self { - ProtoBufPayloadError::Overflow => { + ProtoBufPayloadError::Overflow => { matches!(*other, ProtoBufPayloadError::Overflow) } - ProtoBufPayloadError::ContentType => { + ProtoBufPayloadError::ContentType => { matches!(*other, ProtoBufPayloadError::ContentType) } - _ => false, + _ => false, } } } diff --git a/src/actix_redis/redis.rs.html b/src/actix_redis/redis.rs.html index 977273ed0..d5548d755 100644 --- a/src/actix_redis/redis.rs.html +++ b/src/actix_redis/redis.rs.html @@ -176,7 +176,7 @@ impl RedisActor { /// Start new `Supervisor` with `RedisActor`. - pub fn start<S: Into<String>>(addr: S) -> Addr<RedisActor> { + pub fn start<S: Into<String>>(addr: S) -> Addr<RedisActor> { let addr = addr.into(); let backoff = ExponentialBackoff { @@ -203,7 +203,7 @@ .call(req) .into_actor(self) .map(|res, act, ctx| match res { - Ok(conn) => { + Ok(conn) => { let stream = conn.into_parts().0; info!("Connected to redis server: {}", act.addr); @@ -218,7 +218,7 @@ act.backoff.reset(); } - Err(err) => { + Err(err) => { error!("Can not connect to redis server: {}", err); // re-connect with backoff time. // we stop current context, supervisor will restart it. @@ -241,7 +241,7 @@ } impl actix::io::WriteHandler<io::Error> for RedisActor { - fn error(&mut self, err: io::Error, _: &mut Self::Context) -> Running { + fn error(&mut self, err: io::Error, _: &mut Self::Context) -> Running { warn!("Redis connection dropped: {} error: {}", self.addr, err); Running::Stop } @@ -250,13 +250,13 @@ impl StreamHandler<Result<RespValue, RespError>> for RedisActor { fn handle(&mut self, msg: Result<RespValue, RespError>, ctx: &mut Self::Context) { match msg { - Err(e) => { + Err(e) => { if let Some(tx) = self.queue.pop_front() { let _ = tx.send(Err(e.into())); } ctx.stop(); } - Ok(val) => { + Ok(val) => { if let Some(tx) = self.queue.pop_front() { let _ = tx.send(Ok(val)); } @@ -268,7 +268,7 @@ impl Handler<Command> for RedisActor { type Result = ResponseFuture<Result<RespValue, Error>>; - fn handle(&mut self, msg: Command, _: &mut Self::Context) -> Self::Result { + fn handle(&mut self, msg: Command, _: &mut Self::Context) -> Self::Result { let (tx, rx) = oneshot::channel(); if let Some(ref mut cell) = self.cell { self.queue.push_back(tx); diff --git a/src/actix_redis/session.rs.html b/src/actix_redis/session.rs.html index aeca83dfd..3ac9899c0 100644 --- a/src/actix_redis/session.rs.html +++ b/src/actix_redis/session.rs.html @@ -736,7 +736,7 @@ /// Create new redis session backend /// /// * `addr` - address of the redis server - pub fn new<S: Into<String>>(addr: S, key: &[u8]) -> RedisSession { + pub fn new<S: Into<String>>(addr: S, key: &[u8]) -> RedisSession { RedisSession(Rc::new(Inner { key: Key::derive_from(key), cache_keygen: Box::new(|key: &str| format!("session:{}", &key)), @@ -753,25 +753,25 @@ } /// Set time to live in seconds for session value. - pub fn ttl(mut self, ttl: u32) -> Self { + pub fn ttl(mut self, ttl: u32) -> Self { Rc::get_mut(&mut self.0).unwrap().ttl = format!("{}", ttl); self } /// Set custom cookie name for session ID. - pub fn cookie_name(mut self, name: &str) -> Self { + pub fn cookie_name(mut self, name: &str) -> Self { Rc::get_mut(&mut self.0).unwrap().name = name.to_owned(); self } /// Set custom cookie path. - pub fn cookie_path(mut self, path: &str) -> Self { + pub fn cookie_path(mut self, path: &str) -> Self { Rc::get_mut(&mut self.0).unwrap().path = path.to_owned(); self } /// Set custom cookie domain. - pub fn cookie_domain(mut self, domain: &str) -> Self { + pub fn cookie_domain(mut self, domain: &str) -> Self { Rc::get_mut(&mut self.0).unwrap().domain = Some(domain.to_owned()); self } @@ -782,7 +782,7 @@ /// connection is secure - i.e. `https`. /// /// Default is false. - pub fn cookie_secure(mut self, secure: bool) -> Self { + pub fn cookie_secure(mut self, secure: bool) -> Self { Rc::get_mut(&mut self.0).unwrap().secure = secure; self } @@ -790,7 +790,7 @@ /// Set custom cookie max-age. /// /// Use `None` for session-only cookies. - pub fn cookie_max_age(mut self, max_age: impl Into<Option<Duration>>) -> Self { + pub fn cookie_max_age(mut self, max_age: impl Into<Option<Duration>>) -> Self { Rc::get_mut(&mut self.0).unwrap().max_age = max_age.into(); self } @@ -798,7 +798,7 @@ /// Set custom cookie `SameSite` attribute. /// /// By default, the attribute is omitted. - pub fn cookie_same_site(mut self, same_site: SameSite) -> Self { + pub fn cookie_same_site(mut self, same_site: SameSite) -> Self { Rc::get_mut(&mut self.0).unwrap().same_site = Some(same_site); self } @@ -806,13 +806,13 @@ /// Set custom cookie `HttpOnly` policy. /// /// Default is true. - pub fn cookie_http_only(mut self, http_only: bool) -> Self { + pub fn cookie_http_only(mut self, http_only: bool) -> Self { Rc::get_mut(&mut self.0).unwrap().http_only = http_only; self } /// Set a custom cache key generation strategy, expecting session key as input. - pub fn cache_keygen(mut self, keygen: Box<dyn Fn(&str) -> String>) -> Self { + pub fn cache_keygen(mut self, keygen: Box<dyn Fn(&str) -> String>) -> Self { Rc::get_mut(&mut self.0).unwrap().cache_keygen = keygen; self } @@ -830,7 +830,7 @@ type InitError = (); type Future = LocalBoxFuture<'static, Result<Self::Transform, Self::InitError>>; - fn new_transform(&self, service: S) -> Self::Future { + fn new_transform(&self, service: S) -> Self::Future { let inner = self.0.clone(); Box::pin(async { Ok(RedisSessionMiddleware { @@ -859,7 +859,7 @@ actix_service::forward_ready!(service); - fn call(&self, mut req: ServiceRequest) -> Self::Future { + fn call(&self, mut req: ServiceRequest) -> Self::Future { let srv = Rc::clone(&self.service); let inner = Rc::clone(&self.inner); @@ -876,7 +876,7 @@ let mut res = srv.call(req).await?; match Session::get_changes(&mut res) { - (SessionStatus::Unchanged, state) => { + (SessionStatus::Unchanged, state) => { if value.is_none() { // implies the session is new inner.update(res, state, value).await @@ -885,21 +885,21 @@ } } - (SessionStatus::Changed, state) => inner.update(res, state, value).await, + (SessionStatus::Changed, state) => inner.update(res, state, value).await, - (SessionStatus::Purged, _) => { + (SessionStatus::Purged, _) => { if let Some(val) = value { inner.clear_cache(val).await?; match inner.remove_cookie(&mut res) { - Ok(_) => Ok(res), - Err(_err) => Err(error::ErrorInternalServerError(_err)), + Ok(_) => Ok(res), + Err(_err) => Err(error::ErrorInternalServerError(_err)), } } else { Err(error::ErrorInternalServerError("unexpected")) } } - (SessionStatus::Renewed, state) => { + (SessionStatus::Renewed, state) => { if let Some(val) = value { inner.clear_cache(val).await?; inner.update(res, state, None).await @@ -914,7 +914,7 @@ struct Inner { key: Key, - cache_keygen: Box<dyn Fn(&str) -> String>, + cache_keygen: Box<dyn Fn(&str) -> String>, ttl: String, addr: Addr<RedisActor>, name: String, @@ -930,7 +930,7 @@ async fn load( &self, req: &ServiceRequest, - ) -> Result<Option<(HashMap<String, String>, String)>, Error> { + ) -> Result<Option<(HashMap<String, String>, String)>, Error> { // wrapped in block to avoid holding `Ref` (from `req.cookies`) across await point let (value, cache_key) = { let cookies = if let Ok(cookies) = req.cookies() { @@ -939,7 +939,7 @@ return Ok(None); }; - if let Some(cookie) = cookies.iter().find(|&cookie| cookie.name() == self.name) { + if let Some(cookie) = cookies.iter().find(|&cookie| cookie.name() == self.name) { let mut jar = CookieJar::new(); jar.add_original(cookie.clone()); @@ -963,20 +963,20 @@ .map_err(error::ErrorInternalServerError)?; match val { - RespValue::Error(err) => { + RespValue::Error(err) => { return Err(error::ErrorInternalServerError(err)); } - RespValue::SimpleString(s) => { + RespValue::SimpleString(s) => { if let Ok(val) = serde_json::from_str(&s) { return Ok(Some((val, value))); } } - RespValue::BulkString(s) => { + RespValue::BulkString(s) => { if let Ok(val) = serde_json::from_slice(&s) { return Ok(Some((val, value))); } } - _ => {} + _ => {} } Ok(None) @@ -987,7 +987,7 @@ mut res: ServiceResponse<B>, state: impl Iterator<Item = (String, String)>, value: Option<String>, - ) -> Result<ServiceResponse<B>, Error> { + ) -> Result<ServiceResponse<B>, Error> { let (value, jar) = if let Some(value) = value { (value, None) } else { @@ -1027,8 +1027,8 @@ let state: HashMap<_, _> = state.collect(); let body = match serde_json::to_string(&state) { - Err(err) => return Err(err.into()), - Ok(body) => body, + Err(err) => return Err(err.into()), + Ok(body) => body, }; let cmd = Command(resp_array!["SET", cache_key, body, "EX", &self.ttl]); @@ -1050,7 +1050,7 @@ } /// Removes cache entry. - async fn clear_cache(&self, key: String) -> Result<(), Error> { + async fn clear_cache(&self, key: String) -> Result<(), Error> { let cache_key = (self.cache_keygen)(&key); let res = self @@ -1061,15 +1061,15 @@ match res { // redis responds with number of deleted records - Ok(RespValue::Integer(x)) if x > 0 => Ok(()), - _ => Err(error::ErrorInternalServerError( + Ok(RespValue::Integer(x)) if x > 0 => Ok(()), + _ => Err(error::ErrorInternalServerError( "failed to remove session from cache", )), } } /// Invalidates session cookie. - fn remove_cookie<B>(&self, res: &mut ServiceResponse<B>) -> Result<(), Error> { + fn remove_cookie<B>(&self, res: &mut ServiceResponse<B>) -> Result<(), Error> { let mut cookie = Cookie::named(self.name.clone()); cookie.set_value(""); cookie.set_max_age(Duration::zero()); @@ -1101,7 +1101,7 @@ counter: i32, } - async fn index(session: Session) -> Result<HttpResponse> { + async fn index(session: Session) -> Result<HttpResponse> { let user_id: Option<String> = session.get::<String>("user_id").unwrap(); let counter: i32 = session .get::<i32>("counter") @@ -1111,7 +1111,7 @@ Ok(HttpResponse::Ok().json(&IndexResponse { user_id, counter })) } - async fn do_something(session: Session) -> Result<HttpResponse> { + async fn do_something(session: Session) -> Result<HttpResponse> { let user_id: Option<String> = session.get::<String>("user_id").unwrap(); let counter: i32 = session .get::<i32>("counter") @@ -1127,7 +1127,7 @@ user_id: String, } - async fn login(user_id: web::Json<Identity>, session: Session) -> Result<HttpResponse> { + async fn login(user_id: web::Json<Identity>, session: Session) -> Result<HttpResponse> { let id = user_id.into_inner().user_id; session.insert("user_id", &id)?; session.renew(); @@ -1143,7 +1143,7 @@ })) } - async fn logout(session: Session) -> Result<HttpResponse> { + async fn logout(session: Session) -> Result<HttpResponse> { let id: Option<String> = session.get("user_id")?; let body = if let Some(x) = id { @@ -1209,7 +1209,7 @@ .unwrap() .clone() .into_iter() - .find(|c| c.name() == "test-session") + .find(|c| c.name() == "test-session") .unwrap(); let result_1 = resp_1.json::<IndexResponse>().await.unwrap(); assert_eq!( @@ -1231,7 +1231,7 @@ .unwrap() .clone() .into_iter() - .find(|c| c.name() == "test-session"); + .find(|c| c.name() == "test-session"); assert_eq!(cookie_2, None); // Step 3: POST to do_something, including session cookie #1 in request @@ -1275,7 +1275,7 @@ .unwrap() .clone() .into_iter() - .find(|c| c.name() == "test-session") + .find(|c| c.name() == "test-session") .unwrap(); assert_ne!(cookie_1.value(), cookie_2.value()); @@ -1325,7 +1325,7 @@ .unwrap() .clone() .into_iter() - .find(|c| c.name() == "test-session") + .find(|c| c.name() == "test-session") .unwrap(); let result_8 = resp_8.json::<IndexResponse>().await.unwrap(); assert_eq!( @@ -1347,7 +1347,7 @@ .unwrap() .clone() .into_iter() - .find(|c| c.name() == "test-session") + .find(|c| c.name() == "test-session") .unwrap(); assert_ne!( OffsetDateTime::now_utc().year(), @@ -1376,7 +1376,7 @@ .unwrap() .clone() .into_iter() - .find(|c| c.name() == "test-session") + .find(|c| c.name() == "test-session") .unwrap(); assert_ne!(cookie_5.value(), cookie_2.value()); } @@ -1404,7 +1404,7 @@ .unwrap() .clone() .into_iter() - .find(|c| c.name() == "test-session") + .find(|c| c.name() == "test-session") .unwrap(); assert_eq!(cookie.max_age(), None); diff --git a/src/actix_session/cookie.rs.html b/src/actix_session/cookie.rs.html index 932aea8cc..5b91201db 100644 --- a/src/actix_session/cookie.rs.html +++ b/src/actix_session/cookie.rs.html @@ -610,7 +610,7 @@ } impl CookieSessionInner { - fn new(key: &[u8], security: CookieSecurity) -> CookieSessionInner { + fn new(key: &[u8], security: CookieSecurity) -> CookieSessionInner { CookieSessionInner { security, key: Key::derive_from(key), @@ -630,7 +630,7 @@ &self, res: &mut ServiceResponse<B>, state: impl Iterator<Item = (String, String)>, - ) -> Result<(), Error> { + ) -> Result<(), Error> { let state: HashMap<String, String> = state.collect(); if self.lazy && state.is_empty() { @@ -667,8 +667,8 @@ let mut jar = CookieJar::new(); match self.security { - CookieSecurity::Signed => jar.signed_mut(&self.key).add(cookie), - CookieSecurity::Private => jar.private_mut(&self.key).add(cookie), + CookieSecurity::Signed => jar.signed_mut(&self.key).add(cookie), + CookieSecurity::Private => jar.private_mut(&self.key).add(cookie), } for cookie in jar.delta() { @@ -680,7 +680,7 @@ } /// invalidates session cookie - fn remove_cookie<B>(&self, res: &mut ServiceResponse<B>) -> Result<(), Error> { + fn remove_cookie<B>(&self, res: &mut ServiceResponse<B>) -> Result<(), Error> { let mut cookie = Cookie::named(self.name.clone()); cookie.set_path(self.path.clone()); cookie.set_value(""); @@ -693,16 +693,16 @@ Ok(()) } - fn load(&self, req: &ServiceRequest) -> (bool, HashMap<String, String>) { + fn load(&self, req: &ServiceRequest) -> (bool, HashMap<String, String>) { if let Ok(cookies) = req.cookies() { for cookie in cookies.iter() { - if cookie.name() == self.name { + if cookie.name() == self.name { let mut jar = CookieJar::new(); jar.add_original(cookie.clone()); let cookie_opt = match self.security { - CookieSecurity::Signed => jar.signed(&self.key).get(&self.name), - CookieSecurity::Private => jar.private(&self.key).get(&self.name), + CookieSecurity::Signed => jar.signed(&self.key).get(&self.name), + CookieSecurity::Private => jar.private(&self.key).get(&self.name), }; if let Some(cookie) = cookie_opt { @@ -763,7 +763,7 @@ /// Construct new *signed* `CookieSession` instance. /// /// Panics if key length is less than 32 bytes. - pub fn signed(key: &[u8]) -> CookieSession { + pub fn signed(key: &[u8]) -> CookieSession { CookieSession(Rc::new(CookieSessionInner::new( key, CookieSecurity::Signed, @@ -773,7 +773,7 @@ /// Construct new *private* `CookieSession` instance. /// /// Panics if key length is less than 32 bytes. - pub fn private(key: &[u8]) -> CookieSession { + pub fn private(key: &[u8]) -> CookieSession { CookieSession(Rc::new(CookieSessionInner::new( key, CookieSecurity::Private, @@ -781,19 +781,19 @@ } /// Sets the `path` field in the session cookie being built. - pub fn path<S: Into<String>>(mut self, value: S) -> CookieSession { + pub fn path<S: Into<String>>(mut self, value: S) -> CookieSession { Rc::get_mut(&mut self.0).unwrap().path = value.into(); self } /// Sets the `name` field in the session cookie being built. - pub fn name<S: Into<String>>(mut self, value: S) -> CookieSession { + pub fn name<S: Into<String>>(mut self, value: S) -> CookieSession { Rc::get_mut(&mut self.0).unwrap().name = value.into(); self } /// Sets the `domain` field in the session cookie being built. - pub fn domain<S: Into<String>>(mut self, value: S) -> CookieSession { + pub fn domain<S: Into<String>>(mut self, value: S) -> CookieSession { Rc::get_mut(&mut self.0).unwrap().domain = Some(value.into()); self } @@ -802,7 +802,7 @@ /// the session contains data. Default is `false`. /// /// Useful when trying to comply with laws that require consent for setting cookies. - pub fn lazy(mut self, value: bool) -> CookieSession { + pub fn lazy(mut self, value: bool) -> CookieSession { Rc::get_mut(&mut self.0).unwrap().lazy = value; self } @@ -811,41 +811,41 @@ /// /// If the `secure` field is set, a cookie will only be transmitted when the /// connection is secure - i.e. `https` - pub fn secure(mut self, value: bool) -> CookieSession { + pub fn secure(mut self, value: bool) -> CookieSession { Rc::get_mut(&mut self.0).unwrap().secure = value; self } /// Sets the `http_only` field in the session cookie being built. - pub fn http_only(mut self, value: bool) -> CookieSession { + pub fn http_only(mut self, value: bool) -> CookieSession { Rc::get_mut(&mut self.0).unwrap().http_only = value; self } /// Sets the `same_site` field in the session cookie being built. - pub fn same_site(mut self, value: SameSite) -> CookieSession { + pub fn same_site(mut self, value: SameSite) -> CookieSession { Rc::get_mut(&mut self.0).unwrap().same_site = Some(value); self } /// Sets the `max-age` field in the session cookie being built. - pub fn max_age(self, seconds: i64) -> CookieSession { + pub fn max_age(self, seconds: i64) -> CookieSession { self.max_age_time(Duration::seconds(seconds)) } /// Sets the `max-age` field in the session cookie being built. - pub fn max_age_time(mut self, value: time::Duration) -> CookieSession { + pub fn max_age_time(mut self, value: time::Duration) -> CookieSession { Rc::get_mut(&mut self.0).unwrap().max_age = Some(value); self } /// Sets the `expires` field in the session cookie being built. - pub fn expires_in(self, seconds: i64) -> CookieSession { + pub fn expires_in(self, seconds: i64) -> CookieSession { self.expires_in_time(Duration::seconds(seconds)) } /// Sets the `expires` field in the session cookie being built. - pub fn expires_in_time(mut self, value: Duration) -> CookieSession { + pub fn expires_in_time(mut self, value: Duration) -> CookieSession { Rc::get_mut(&mut self.0).unwrap().expires_in = Some(value); self } @@ -865,7 +865,7 @@ type Transform = CookieSessionMiddleware<S>; type Future = Ready<Result<Self::Transform, Self::InitError>>; - fn new_transform(&self, service: S) -> Self::Future { + fn new_transform(&self, service: S) -> Self::Future { ok(CookieSessionMiddleware { service, inner: self.0.clone(), @@ -898,7 +898,7 @@ /// session state changes, then set-cookie is returned in response. As /// a user logs out, call session.purge() to set SessionStatus accordingly /// and this will trigger removal of the session cookie in the response. - fn call(&self, mut req: ServiceRequest) -> Self::Future { + fn call(&self, mut req: ServiceRequest) -> Self::Future { let inner = self.inner.clone(); let (is_new, state) = self.inner.load(&req); let prolong_expiration = self.inner.expires_in.is_some(); @@ -910,16 +910,16 @@ let mut res = fut.await?; let result = match Session::get_changes(&mut res) { - (SessionStatus::Changed, state) | (SessionStatus::Renewed, state) => { + (SessionStatus::Changed, state) | (SessionStatus::Renewed, state) => { inner.set_cookie(&mut res, state) } - (SessionStatus::Unchanged, state) if prolong_expiration => { + (SessionStatus::Unchanged, state) if prolong_expiration => { inner.set_cookie(&mut res, state) } // set a new session cookie upon first request (new client) - (SessionStatus::Unchanged, _) => { + (SessionStatus::Unchanged, _) => { if is_new { let state: HashMap<String, String> = HashMap::new(); inner.set_cookie(&mut res, state.into_iter()) @@ -928,15 +928,15 @@ } } - (SessionStatus::Purged, _) => { + (SessionStatus::Purged, _) => { let _ = inner.remove_cookie(&mut res); Ok(()) } }; match result { - Ok(()) => Ok(res.map_body(|_, body| AnyBody::from_message(body))), - Err(error) => Ok(res.error_response(error)), + Ok(()) => Ok(res.map_body(|_, body| AnyBody::from_message(body))), + Err(error) => Ok(res.error_response(error)), } } .boxed_local() @@ -966,7 +966,7 @@ assert!(response .response() .cookies() - .any(|c| c.name() == "actix-session")); + .any(|c| c.name() == "actix-session")); } #[actix_rt::test] @@ -986,7 +986,7 @@ assert!(response .response() .cookies() - .any(|c| c.name() == "actix-session")); + .any(|c| c.name() == "actix-session")); } #[actix_rt::test] @@ -1004,7 +1004,7 @@ let request = test::TestRequest::get().to_request(); let response = app.call(request).await.unwrap(); - assert!(response.response().cookies().count() == 0); + assert!(response.response().cookies().count() == 0); let request = test::TestRequest::with_uri("/count").to_request(); let response = app.call(request).await.unwrap(); @@ -1012,7 +1012,7 @@ assert!(response .response() .cookies() - .any(|c| c.name() == "actix-session")); + .any(|c| c.name() == "actix-session")); } #[actix_rt::test] @@ -1032,7 +1032,7 @@ assert!(response .response() .cookies() - .any(|c| c.name() == "actix-session")); + .any(|c| c.name() == "actix-session")); } #[actix_rt::test] @@ -1064,7 +1064,7 @@ let cookie = response .response() .cookies() - .find(|c| c.name() == "actix-test") + .find(|c| c.name() == "actix-test") .unwrap() .clone(); assert_eq!(cookie.path().unwrap(), "/test/"); @@ -1094,7 +1094,7 @@ let expires_1 = response .response() .cookies() - .find(|c| c.name() == "actix-session") + .find(|c| c.name() == "actix-session") .expect("Cookie is set") .expires() .expect("Expiration is set") @@ -1108,7 +1108,7 @@ let expires_2 = response .response() .cookies() - .find(|c| c.name() == "actix-session") + .find(|c| c.name() == "actix-session") .expect("Cookie is set") .expires() .expect("Expiration is set") diff --git a/src/actix_session/lib.rs.html b/src/actix_session/lib.rs.html index 0971c0528..c1dbee4fe 100644 --- a/src/actix_session/lib.rs.html +++ b/src/actix_session/lib.rs.html @@ -487,23 +487,23 @@ /// Extraction of a [`Session`] object. pub trait UserSession { /// Extract the [`Session`] object - fn get_session(&self) -> Session; + fn get_session(&self) -> Session; } impl UserSession for HttpRequest { - fn get_session(&self) -> Session { + fn get_session(&self) -> Session { Session::get_session(&mut *self.extensions_mut()) } } impl UserSession for ServiceRequest { - fn get_session(&self) -> Session { + fn get_session(&self) -> Session { Session::get_session(&mut *self.extensions_mut()) } } impl UserSession for RequestHead { - fn get_session(&self) -> Session { + fn get_session(&self) -> Session { Session::get_session(&mut *self.extensions_mut()) } } @@ -534,7 +534,7 @@ } impl Default for SessionStatus { - fn default() -> SessionStatus { + fn default() -> SessionStatus { SessionStatus::Unchanged } } @@ -547,7 +547,7 @@ impl Session { /// Get a `value` from the session. - pub fn get<T: DeserializeOwned>(&self, key: &str) -> Result<Option<T>, Error> { + pub fn get<T: DeserializeOwned>(&self, key: &str) -> Result<Option<T>, Error> { if let Some(s) = self.0.borrow().state.get(key) { Ok(Some(serde_json::from_str(s)?)) } else { @@ -558,7 +558,7 @@ /// Get all raw key-value data from the session. /// /// Note that values are JSON encoded. - pub fn entries(&self) -> Ref<'_, HashMap<String, String>> { + pub fn entries(&self) -> Ref<'_, HashMap<String, String>> { Ref::map(self.0.borrow(), |inner| &inner.state) } @@ -566,7 +566,7 @@ /// /// Any serializable value can be used and will be encoded as JSON in session data, hence why /// only a reference to the value is taken. - pub fn insert(&self, key: impl Into<String>, value: impl Serialize) -> Result<(), Error> { + pub fn insert(&self, key: impl Into<String>, value: impl Serialize) -> Result<(), Error> { let mut inner = self.0.borrow_mut(); if inner.status != SessionStatus::Purged { @@ -581,7 +581,7 @@ /// Remove value from the session. /// /// If present, the JSON encoded value is returned. - pub fn remove(&self, key: &str) -> Option<String> { + pub fn remove(&self, key: &str) -> Option<String> { let mut inner = self.0.borrow_mut(); if inner.status != SessionStatus::Purged { @@ -596,11 +596,11 @@ /// /// Returns None if key was not present in session. Returns T if deserialization succeeds, /// otherwise returns un-deserialized JSON string. - pub fn remove_as<T: DeserializeOwned>(&self, key: &str) -> Option<Result<T, String>> { + pub fn remove_as<T: DeserializeOwned>(&self, key: &str) -> Option<Result<T, String>> { self.remove(key) .map(|val_str| match serde_json::from_str(&val_str) { - Ok(val) => Ok(val), - Err(_err) => { + Ok(val) => Ok(val), + Err(_err) => { log::debug!( "removed value (key: {}) could not be deserialized as {}", key, @@ -662,7 +662,7 @@ /// Returns session status and iterator of key-value pairs of changes. pub fn get_changes<B>( res: &mut ServiceResponse<B>, - ) -> (SessionStatus, impl Iterator<Item = (String, String)>) { + ) -> (SessionStatus, impl Iterator<Item = (String, String)>) { if let Some(s_impl) = res .request() .extensions() @@ -675,7 +675,7 @@ } } - fn get_session(extensions: &mut Extensions) -> Session { + fn get_session(extensions: &mut Extensions) -> Session { if let Some(s_impl) = extensions.get::<Rc<RefCell<SessionInner>>>() { return Session(Rc::clone(s_impl)); } @@ -711,7 +711,7 @@ type Config = (); #[inline] - fn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future { + fn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future { ok(Session::get_session(&mut *req.extensions_mut())) } } diff --git a/src/actix_web_httpauth/extractors/basic.rs.html b/src/actix_web_httpauth/extractors/basic.rs.html index e92c4a69c..e3a43cc9d 100644 --- a/src/actix_web_httpauth/extractors/basic.rs.html +++ b/src/actix_web_httpauth/extractors/basic.rs.html @@ -176,7 +176,7 @@ /// /// The "realm" attribute indicates the scope of protection in the manner /// described in HTTP/1.1 [RFC2617](https://tools.ietf.org/html/rfc2617#section-1.2). - pub fn realm<T>(mut self, value: T) -> Config + pub fn realm<T>(mut self, value: T) -> Config where T: Into<Cow<'static, str>>, { @@ -186,7 +186,7 @@ } impl AsRef<Challenge> for Config { - fn as_ref(&self) -> &Challenge { + fn as_ref(&self) -> &Challenge { &self.0 } } @@ -194,7 +194,7 @@ impl AuthExtractorConfig for Config { type Inner = Challenge; - fn into_inner(self) -> Self::Inner { + fn into_inner(self) -> Self::Inner { self.0 } } @@ -242,12 +242,12 @@ impl BasicAuth { /// Returns client's user-ID. - pub fn user_id(&self) -> &Cow<'static, str> { + pub fn user_id(&self) -> &Cow<'static, str> { self.0.user_id() } /// Returns client's password. - pub fn password(&self) -> Option<&Cow<'static, str>> { + pub fn password(&self) -> Option<&Cow<'static, str>> { self.0.password() } } @@ -257,7 +257,7 @@ type Config = Config; type Error = AuthenticationError<Challenge>; - fn from_request(req: &HttpRequest, _: &mut Payload) -> <Self as FromRequest>::Future { + fn from_request(req: &HttpRequest, _: &mut Payload) -> <Self as FromRequest>::Future { ready( Authorization::<Basic>::parse(req) .map(|auth| BasicAuth(auth.into_scheme())) @@ -279,7 +279,7 @@ type Error = AuthenticationError<Challenge>; type Future = Ready<Result<Self, Self::Error>>; - fn from_service_request(req: &ServiceRequest) -> Self::Future { + fn from_service_request(req: &ServiceRequest) -> Self::Future { ready( Authorization::<Basic>::parse(req) .map(|auth| BasicAuth(auth.into_scheme())) diff --git a/src/actix_web_httpauth/extractors/bearer.rs.html b/src/actix_web_httpauth/extractors/bearer.rs.html index 9515f6a33..d89151e41 100644 --- a/src/actix_web_httpauth/extractors/bearer.rs.html +++ b/src/actix_web_httpauth/extractors/bearer.rs.html @@ -202,7 +202,7 @@ /// The `"scope"` attribute is a space-delimited list of case-sensitive /// scope values indicating the required scope of the access token for /// accessing the requested resource. - pub fn scope<T: Into<Cow<'static, str>>>(mut self, value: T) -> Config { + pub fn scope<T: Into<Cow<'static, str>>>(mut self, value: T) -> Config { self.0.scope = Some(value.into()); self } @@ -211,14 +211,14 @@ /// /// The "realm" attribute indicates the scope of protection in the manner /// described in HTTP/1.1 [RFC2617](https://tools.ietf.org/html/rfc2617#section-1.2). - pub fn realm<T: Into<Cow<'static, str>>>(mut self, value: T) -> Config { + pub fn realm<T: Into<Cow<'static, str>>>(mut self, value: T) -> Config { self.0.realm = Some(value.into()); self } } impl AsRef<bearer::Bearer> for Config { - fn as_ref(&self) -> &bearer::Bearer { + fn as_ref(&self) -> &bearer::Bearer { &self.0 } } @@ -226,7 +226,7 @@ impl AuthExtractorConfig for Config { type Inner = bearer::Bearer; - fn into_inner(self) -> Self::Inner { + fn into_inner(self) -> Self::Inner { self.0 } } @@ -274,7 +274,7 @@ impl BearerAuth { /// Returns bearer token provided by client. - pub fn token(&self) -> &str { + pub fn token(&self) -> &str { self.0.token() } } @@ -284,7 +284,7 @@ type Future = Ready<Result<Self, Self::Error>>; type Error = AuthenticationError<bearer::Bearer>; - fn from_request(req: &HttpRequest, _payload: &mut Payload) -> <Self as FromRequest>::Future { + fn from_request(req: &HttpRequest, _payload: &mut Payload) -> <Self as FromRequest>::Future { ready( authorization::Authorization::<authorization::Bearer>::parse(req) .map(|auth| BearerAuth(auth.into_scheme())) @@ -304,7 +304,7 @@ type Future = Ready<Result<Self, Self::Error>>; type Error = AuthenticationError<bearer::Bearer>; - fn from_service_request(req: &ServiceRequest) -> Self::Future { + fn from_service_request(req: &ServiceRequest) -> Self::Future { ready( authorization::Authorization::<authorization::Bearer>::parse(req) .map(|auth| BearerAuth(auth.into_scheme())) @@ -326,14 +326,14 @@ /// /// Error status code will be changed to the one provided by the `kind` /// Error. - pub fn with_error(mut self, kind: Error) -> Self { + pub fn with_error(mut self, kind: Error) -> Self { *self.status_code_mut() = kind.status_code(); self.challenge_mut().error = Some(kind); self } /// Attach error description to the current Authentication error. - pub fn with_error_description<T>(mut self, desc: T) -> Self + pub fn with_error_description<T>(mut self, desc: T) -> Self where T: Into<Cow<'static, str>>, { @@ -344,7 +344,7 @@ /// Attach error URI to the current Authentication error. /// /// It is up to implementor to provide properly formed absolute URI. - pub fn with_error_uri<T>(mut self, uri: T) -> Self + pub fn with_error_uri<T>(mut self, uri: T) -> Self where T: Into<Cow<'static, str>>, { diff --git a/src/actix_web_httpauth/extractors/config.rs.html b/src/actix_web_httpauth/extractors/config.rs.html index 8b492abaf..c04658f40 100644 --- a/src/actix_web_httpauth/extractors/config.rs.html +++ b/src/actix_web_httpauth/extractors/config.rs.html @@ -33,14 +33,14 @@ type Inner: Challenge; /// Convert the config instance into a HTTP challenge. - fn into_inner(self) -> Self::Inner; + fn into_inner(self) -> Self::Inner; } impl<T> From<T> for AuthenticationError<<T as AuthExtractorConfig>::Inner> where T: AuthExtractorConfig, { - fn from(config: T) -> Self { + fn from(config: T) -> Self { AuthenticationError::new(config.into_inner()) } } diff --git a/src/actix_web_httpauth/extractors/errors.rs.html b/src/actix_web_httpauth/extractors/errors.rs.html index 76e3bd008..f879a9872 100644 --- a/src/actix_web_httpauth/extractors/errors.rs.html +++ b/src/actix_web_httpauth/extractors/errors.rs.html @@ -103,7 +103,7 @@ /// Creates new authentication error from the provided `challenge`. /// /// By default returned error will resolve into the `HTTP 401` status code. - pub fn new(challenge: C) -> AuthenticationError<C> { + pub fn new(challenge: C) -> AuthenticationError<C> { AuthenticationError { challenge, status_code: StatusCode::UNAUTHORIZED, @@ -111,7 +111,7 @@ } /// Returns mutable reference to the inner challenge instance. - pub fn challenge_mut(&mut self) -> &mut C { + pub fn challenge_mut(&mut self) -> &mut C { &mut self.challenge } @@ -119,13 +119,13 @@ /// /// Can be used to override returned status code, but by default /// this lib tries to stick to the RFC, so it might be unreasonable. - pub fn status_code_mut(&mut self) -> &mut StatusCode { + pub fn status_code_mut(&mut self) -> &mut StatusCode { &mut self.status_code } } impl<C: Challenge> fmt::Display for AuthenticationError<C> { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { fmt::Display::fmt(&self.status_code, f) } } @@ -133,14 +133,14 @@ impl<C: 'static + Challenge> Error for AuthenticationError<C> {} impl<C: 'static + Challenge> ResponseError for AuthenticationError<C> { - fn error_response(&self) -> HttpResponse { + fn error_response(&self) -> HttpResponse { HttpResponse::build(self.status_code) // TODO: Get rid of the `.clone()` .insert_header(WwwAuthenticate(self.challenge.clone())) .finish() } - fn status_code(&self) -> StatusCode { + fn status_code(&self) -> StatusCode { self.status_code } } diff --git a/src/actix_web_httpauth/extractors/mod.rs.html b/src/actix_web_httpauth/extractors/mod.rs.html index 17462b936..f229313d9 100644 --- a/src/actix_web_httpauth/extractors/mod.rs.html +++ b/src/actix_web_httpauth/extractors/mod.rs.html @@ -62,7 +62,7 @@ type Future: Future<Output = Result<Self, Self::Error>>; /// Parse the authentication credentials from the actix' `ServiceRequest`. - fn from_service_request(req: &ServiceRequest) -> Self::Future; + fn from_service_request(req: &ServiceRequest) -> Self::Future; }
    diff --git a/src/actix_web_httpauth/headers/authorization/errors.rs.html b/src/actix_web_httpauth/headers/authorization/errors.rs.html index 3e2db8a88..28bb3b3b4 100644 --- a/src/actix_web_httpauth/headers/authorization/errors.rs.html +++ b/src/actix_web_httpauth/headers/authorization/errors.rs.html @@ -95,44 +95,44 @@ } impl fmt::Display for ParseError { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let display = match self { - ParseError::Invalid => "Invalid header value".to_string(), - ParseError::MissingScheme => "Missing authorization scheme".to_string(), - ParseError::MissingField(_) => "Missing header field".to_string(), - ParseError::ToStrError(e) => e.to_string(), - ParseError::Base64DecodeError(e) => e.to_string(), - ParseError::Utf8Error(e) => e.to_string(), + ParseError::Invalid => "Invalid header value".to_string(), + ParseError::MissingScheme => "Missing authorization scheme".to_string(), + ParseError::MissingField(_) => "Missing header field".to_string(), + ParseError::ToStrError(e) => e.to_string(), + ParseError::Base64DecodeError(e) => e.to_string(), + ParseError::Utf8Error(e) => e.to_string(), }; f.write_str(&display) } } impl Error for ParseError { - fn source(&self) -> Option<&(dyn Error + 'static)> { + fn source(&self) -> Option<&(dyn Error + 'static)> { match self { - ParseError::Invalid => None, - ParseError::MissingScheme => None, - ParseError::MissingField(_) => None, - ParseError::ToStrError(e) => Some(e), - ParseError::Base64DecodeError(e) => Some(e), - ParseError::Utf8Error(e) => Some(e), + ParseError::Invalid => None, + ParseError::MissingScheme => None, + ParseError::MissingField(_) => None, + ParseError::ToStrError(e) => Some(e), + ParseError::Base64DecodeError(e) => Some(e), + ParseError::Utf8Error(e) => Some(e), } } } impl From<header::ToStrError> for ParseError { - fn from(e: header::ToStrError) -> Self { + fn from(e: header::ToStrError) -> Self { ParseError::ToStrError(e) } } impl From<base64::DecodeError> for ParseError { - fn from(e: base64::DecodeError) -> Self { + fn from(e: base64::DecodeError) -> Self { ParseError::Base64DecodeError(e) } } impl From<str::Utf8Error> for ParseError { - fn from(e: str::Utf8Error) -> Self { + fn from(e: str::Utf8Error) -> Self { ParseError::Utf8Error(e) } } diff --git a/src/actix_web_httpauth/headers/authorization/header.rs.html b/src/actix_web_httpauth/headers/authorization/header.rs.html index 001588570..6af622342 100644 --- a/src/actix_web_httpauth/headers/authorization/header.rs.html +++ b/src/actix_web_httpauth/headers/authorization/header.rs.html @@ -141,7 +141,7 @@ /// implementation. /// /// [`Scheme`]: ./trait.Scheme.html - pub fn into_scheme(self) -> S { + pub fn into_scheme(self) -> S { self.0 } } @@ -150,7 +150,7 @@ where S: Scheme, { - fn from(scheme: S) -> Authorization<S> { + fn from(scheme: S) -> Authorization<S> { Authorization(scheme) } } @@ -159,7 +159,7 @@ where S: Scheme, { - fn as_ref(&self) -> &S { + fn as_ref(&self) -> &S { &self.0 } } @@ -168,18 +168,18 @@ where S: Scheme, { - fn as_mut(&mut self) -> &mut S { + fn as_mut(&mut self) -> &mut S { &mut self.0 } } impl<S: Scheme> Header for Authorization<S> { #[inline] - fn name() -> HeaderName { + fn name() -> HeaderName { AUTHORIZATION } - fn parse<T: HttpMessage>(msg: &T) -> Result<Self, ParseError> { + fn parse<T: HttpMessage>(msg: &T) -> Result<Self, ParseError> { let header = msg.headers().get(AUTHORIZATION).ok_or(ParseError::Header)?; let scheme = S::parse(header).map_err(|_| ParseError::Header)?; @@ -190,13 +190,13 @@ impl<S: Scheme> IntoHeaderValue for Authorization<S> { type Error = <S as IntoHeaderValue>::Error; - fn try_into_value(self) -> Result<HeaderValue, Self::Error> { + fn try_into_value(self) -> Result<HeaderValue, Self::Error> { self.0.try_into_value() } } impl<S: Scheme> fmt::Display for Authorization<S> { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { fmt::Display::fmt(&self.0, f) } } diff --git a/src/actix_web_httpauth/headers/authorization/scheme/basic.rs.html b/src/actix_web_httpauth/headers/authorization/scheme/basic.rs.html index aa5300999..c3dd49472 100644 --- a/src/actix_web_httpauth/headers/authorization/scheme/basic.rs.html +++ b/src/actix_web_httpauth/headers/authorization/scheme/basic.rs.html @@ -222,7 +222,7 @@ /// # use actix_web_httpauth::headers::authorization::Basic; /// let credentials = Basic::new("Alladin", Some("open sesame")); /// ``` - pub fn new<U, P>(user_id: U, password: Option<P>) -> Basic + pub fn new<U, P>(user_id: U, password: Option<P>) -> Basic where U: Into<Cow<'static, str>>, P: Into<Cow<'static, str>>, @@ -234,18 +234,18 @@ } /// Returns client's user-ID. - pub fn user_id(&self) -> &Cow<'static, str> { + pub fn user_id(&self) -> &Cow<'static, str> { &self.user_id } /// Returns client's password if provided. - pub fn password(&self) -> Option<&Cow<'static, str>> { + pub fn password(&self) -> Option<&Cow<'static, str>> { self.password.as_ref() } } impl Scheme for Basic { - fn parse(header: &HeaderValue) -> Result<Self, ParseError> { + fn parse(header: &HeaderValue) -> Result<Self, ParseError> { // "Basic *" length if header.len() < 7 { return Err(ParseError::Invalid); @@ -253,8 +253,8 @@ let mut parts = header.to_str()?.splitn(2, ' '); match parts.next() { - Some(scheme) if scheme == "Basic" => (), - _ => return Err(ParseError::MissingScheme), + Some(scheme) if scheme == "Basic" => (), + _ => return Err(ParseError::MissingScheme), } let decoded = base64::decode(parts.next().ok_or(ParseError::Invalid)?)?; @@ -280,13 +280,13 @@ } impl fmt::Debug for Basic { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.write_fmt(format_args!("Basic {}:******", self.user_id)) } } impl fmt::Display for Basic { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.write_fmt(format_args!("Basic {}:******", self.user_id)) } } @@ -294,7 +294,7 @@ impl IntoHeaderValue for Basic { type Error = InvalidHeaderValue; - fn try_into_value(self) -> Result<HeaderValue, <Self as IntoHeaderValue>::Error> { + fn try_into_value(self) -> Result<HeaderValue, <Self as IntoHeaderValue>::Error> { let mut credentials = BytesMut::with_capacity( self.user_id.len() + 1 // ':' diff --git a/src/actix_web_httpauth/headers/authorization/scheme/bearer.rs.html b/src/actix_web_httpauth/headers/authorization/scheme/bearer.rs.html index d4a06c2b9..e24f6b2fe 100644 --- a/src/actix_web_httpauth/headers/authorization/scheme/bearer.rs.html +++ b/src/actix_web_httpauth/headers/authorization/scheme/bearer.rs.html @@ -163,7 +163,7 @@ /// # use actix_web_httpauth::headers::authorization::Bearer; /// let credentials = Bearer::new("mF_9.B5f-4.1JqM"); /// ``` - pub fn new<T>(token: T) -> Bearer + pub fn new<T>(token: T) -> Bearer where T: Into<Cow<'static, str>>, { @@ -173,13 +173,13 @@ } /// Gets reference to the credentials token. - pub fn token(&self) -> &Cow<'static, str> { + pub fn token(&self) -> &Cow<'static, str> { &self.token } } impl Scheme for Bearer { - fn parse(header: &HeaderValue) -> Result<Self, ParseError> { + fn parse(header: &HeaderValue) -> Result<Self, ParseError> { // "Bearer *" length if header.len() < 8 { return Err(ParseError::Invalid); @@ -187,8 +187,8 @@ let mut parts = header.to_str()?.splitn(2, ' '); match parts.next() { - Some(scheme) if scheme == "Bearer" => (), - _ => return Err(ParseError::MissingScheme), + Some(scheme) if scheme == "Bearer" => (), + _ => return Err(ParseError::MissingScheme), } let token = parts.next().ok_or(ParseError::Invalid)?; @@ -200,13 +200,13 @@ } impl fmt::Debug for Bearer { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.write_fmt(format_args!("Bearer ******")) } } impl fmt::Display for Bearer { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.write_fmt(format_args!("Bearer {}", self.token)) } } @@ -214,7 +214,7 @@ impl IntoHeaderValue for Bearer { type Error = InvalidHeaderValue; - fn try_into_value(self) -> Result<HeaderValue, <Self as IntoHeaderValue>::Error> { + fn try_into_value(self) -> Result<HeaderValue, <Self as IntoHeaderValue>::Error> { let mut buffer = BytesMut::with_capacity(7 + self.token.len()); buffer.put(&b"Bearer "[..]); buffer.extend_from_slice(self.token.as_bytes()); diff --git a/src/actix_web_httpauth/headers/authorization/scheme/mod.rs.html b/src/actix_web_httpauth/headers/authorization/scheme/mod.rs.html index 588465fff..ffb45c41a 100644 --- a/src/actix_web_httpauth/headers/authorization/scheme/mod.rs.html +++ b/src/actix_web_httpauth/headers/authorization/scheme/mod.rs.html @@ -26,7 +26,7 @@ /// header. pub trait Scheme: IntoHeaderValue + Debug + Display + Clone + Send + Sync { /// Try to parse the authentication scheme from the `Authorization` header. - fn parse(header: &HeaderValue) -> Result<Self, ParseError>; + fn parse(header: &HeaderValue) -> Result<Self, ParseError>; }
    diff --git a/src/actix_web_httpauth/headers/www_authenticate/challenge/basic.rs.html b/src/actix_web_httpauth/headers/www_authenticate/challenge/basic.rs.html index 822f2319a..74f39eac4 100644 --- a/src/actix_web_httpauth/headers/www_authenticate/challenge/basic.rs.html +++ b/src/actix_web_httpauth/headers/www_authenticate/challenge/basic.rs.html @@ -186,7 +186,7 @@ /// # use actix_web_httpauth::headers::www_authenticate::basic::Basic; /// let challenge = Basic::new(); /// ``` - pub fn new() -> Basic { + pub fn new() -> Basic { Default::default() } @@ -204,7 +204,7 @@ /// let my_realm = "Earth realm".to_string(); /// let challenge = Basic::with_realm(my_realm); /// ``` - pub fn with_realm<T>(value: T) -> Basic + pub fn with_realm<T>(value: T) -> Basic where T: Into<Cow<'static, str>>, { @@ -216,7 +216,7 @@ #[doc(hidden)] impl Challenge for Basic { - fn to_bytes(&self) -> Bytes { + fn to_bytes(&self) -> Bytes { // 5 is for `"Basic"`, 9 is for `"realm=\"\""` let length = 5 + self.realm.as_ref().map_or(0, |realm| realm.len() + 9); let mut buffer = BytesMut::with_capacity(length); @@ -232,7 +232,7 @@ } impl fmt::Display for Basic { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { let bytes = self.to_bytes(); let repr = str::from_utf8(&bytes) // Should not happen since challenges are crafted manually @@ -246,7 +246,7 @@ impl IntoHeaderValue for Basic { type Error = InvalidHeaderValue; - fn try_into_value(self) -> Result<HeaderValue, <Self as IntoHeaderValue>::Error> { + fn try_into_value(self) -> Result<HeaderValue, <Self as IntoHeaderValue>::Error> { HeaderValue::from_maybe_shared(self.to_bytes()) } } diff --git a/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/builder.rs.html b/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/builder.rs.html index b5ead7122..f286b6245 100644 --- a/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/builder.rs.html +++ b/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/builder.rs.html @@ -76,7 +76,7 @@ impl BearerBuilder { /// Provides the `scope` attribute, as defined in [RFC6749, Section 3.3](https://tools.ietf.org/html/rfc6749#section-3.3) - pub fn scope<T>(mut self, value: T) -> Self + pub fn scope<T>(mut self, value: T) -> Self where T: Into<Cow<'static, str>>, { @@ -85,7 +85,7 @@ } /// Provides the `realm` attribute, as defined in [RFC2617](https://tools.ietf.org/html/rfc2617) - pub fn realm<T>(mut self, value: T) -> Self + pub fn realm<T>(mut self, value: T) -> Self where T: Into<Cow<'static, str>>, { @@ -94,13 +94,13 @@ } /// Provides the `error` attribute, as defined in [RFC6750, Section 3.1](https://tools.ietf.org/html/rfc6750#section-3.1) - pub fn error(mut self, value: Error) -> Self { + pub fn error(mut self, value: Error) -> Self { self.0.error = Some(value); self } /// Provides the `error_description` attribute, as defined in [RFC6750, Section 3](https://tools.ietf.org/html/rfc6750#section-3) - pub fn error_description<T>(mut self, value: T) -> Self + pub fn error_description<T>(mut self, value: T) -> Self where T: Into<Cow<'static, str>>, { @@ -111,7 +111,7 @@ /// Provides the `error_uri` attribute, as defined in [RFC6750, Section 3](https://tools.ietf.org/html/rfc6750#section-3) /// /// It is up to implementor to provide properly-formed absolute URI. - pub fn error_uri<T>(mut self, value: T) -> Self + pub fn error_uri<T>(mut self, value: T) -> Self where T: Into<Cow<'static, str>>, { @@ -120,7 +120,7 @@ } /// Consumes the builder and returns built `Bearer` instance. - pub fn finish(self) -> Bearer { + pub fn finish(self) -> Bearer { self.0 } } diff --git a/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/challenge.rs.html b/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/challenge.rs.html index 8f98b237c..c63dcbbac 100644 --- a/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/challenge.rs.html +++ b/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/challenge.rs.html @@ -197,14 +197,14 @@ /// .scope("openid profile email") /// .finish(); /// ``` - pub fn build() -> BearerBuilder { + pub fn build() -> BearerBuilder { BearerBuilder::default() } } #[doc(hidden)] impl Challenge for Bearer { - fn to_bytes(&self) -> Bytes { + fn to_bytes(&self) -> Bytes { let desc_uri_required = self .error_description .as_ref() @@ -258,7 +258,7 @@ } impl fmt::Display for Bearer { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { let bytes = self.to_bytes(); let repr = str::from_utf8(&bytes) // Should not happen since challenges are crafted manually @@ -272,7 +272,7 @@ impl IntoHeaderValue for Bearer { type Error = InvalidHeaderValue; - fn try_into_value(self) -> Result<HeaderValue, <Self as IntoHeaderValue>::Error> { + fn try_into_value(self) -> Result<HeaderValue, <Self as IntoHeaderValue>::Error> { HeaderValue::from_maybe_shared(self.to_bytes()) } } diff --git a/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/errors.rs.html b/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/errors.rs.html index a23d0a471..7767929f7 100644 --- a/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/errors.rs.html +++ b/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/errors.rs.html @@ -76,27 +76,27 @@ /// /// [HTTP status code]: `actix_web::http::StatusCode` #[allow(clippy::trivially_copy_pass_by_ref)] - pub fn status_code(&self) -> StatusCode { + pub fn status_code(&self) -> StatusCode { match self { - Error::InvalidRequest => StatusCode::BAD_REQUEST, - Error::InvalidToken => StatusCode::UNAUTHORIZED, - Error::InsufficientScope => StatusCode::FORBIDDEN, + Error::InvalidRequest => StatusCode::BAD_REQUEST, + Error::InvalidToken => StatusCode::UNAUTHORIZED, + Error::InsufficientScope => StatusCode::FORBIDDEN, } } #[doc(hidden)] #[allow(clippy::trivially_copy_pass_by_ref)] - pub fn as_str(&self) -> &str { + pub fn as_str(&self) -> &str { match self { - Error::InvalidRequest => "invalid_request", - Error::InvalidToken => "invalid_token", - Error::InsufficientScope => "insufficient_scope", + Error::InvalidRequest => "invalid_request", + Error::InvalidToken => "invalid_token", + Error::InsufficientScope => "insufficient_scope", } } } impl fmt::Display for Error { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.write_str(self.as_str()) } } diff --git a/src/actix_web_httpauth/headers/www_authenticate/challenge/mod.rs.html b/src/actix_web_httpauth/headers/www_authenticate/challenge/mod.rs.html index a046d72de..aab4d07c6 100644 --- a/src/actix_web_httpauth/headers/www_authenticate/challenge/mod.rs.html +++ b/src/actix_web_httpauth/headers/www_authenticate/challenge/mod.rs.html @@ -22,7 +22,7 @@ /// Authentication challenge for `WWW-Authenticate` header. pub trait Challenge: IntoHeaderValue + Debug + Display + Clone + Send + Sync { /// Converts the challenge into a bytes suitable for HTTP transmission. - fn to_bytes(&self) -> Bytes; + fn to_bytes(&self) -> Bytes; }
    diff --git a/src/actix_web_httpauth/headers/www_authenticate/header.rs.html b/src/actix_web_httpauth/headers/www_authenticate/header.rs.html index b33b5461f..80e4ebe71 100644 --- a/src/actix_web_httpauth/headers/www_authenticate/header.rs.html +++ b/src/actix_web_httpauth/headers/www_authenticate/header.rs.html @@ -44,11 +44,11 @@ pub struct WwwAuthenticate<C: Challenge>(pub C); impl<C: Challenge> Header for WwwAuthenticate<C> { - fn name() -> HeaderName { + fn name() -> HeaderName { WWW_AUTHENTICATE } - fn parse<T: HttpMessage>(_msg: &T) -> Result<Self, ParseError> { + fn parse<T: HttpMessage>(_msg: &T) -> Result<Self, ParseError> { unimplemented!() } } @@ -56,7 +56,7 @@ impl<C: Challenge> IntoHeaderValue for WwwAuthenticate<C> { type Error = <C as IntoHeaderValue>::Error; - fn try_into_value(self) -> Result<HeaderValue, <Self as IntoHeaderValue>::Error> { + fn try_into_value(self) -> Result<HeaderValue, <Self as IntoHeaderValue>::Error> { self.0.try_into_value() } } diff --git a/src/actix_web_httpauth/middleware.rs.html b/src/actix_web_httpauth/middleware.rs.html index e4d478d57..4310c85fc 100644 --- a/src/actix_web_httpauth/middleware.rs.html +++ b/src/actix_web_httpauth/middleware.rs.html @@ -348,12 +348,12 @@ impl<T, F, O> HttpAuthentication<T, F> where T: AuthExtractor, - F: Fn(ServiceRequest, T) -> O, + F: Fn(ServiceRequest, T) -> O, O: Future<Output = Result<ServiceRequest, Error>>, { /// Construct `HttpAuthentication` middleware with the provided auth extractor `T` and /// validation callback `F`. - pub fn with_fn(process_fn: F) -> HttpAuthentication<T, F> { + pub fn with_fn(process_fn: F) -> HttpAuthentication<T, F> { HttpAuthentication { process_fn: Arc::new(process_fn), _extractor: PhantomData, @@ -363,7 +363,7 @@ impl<F, O> HttpAuthentication<basic::BasicAuth, F> where - F: Fn(ServiceRequest, basic::BasicAuth) -> O, + F: Fn(ServiceRequest, basic::BasicAuth) -> O, O: Future<Output = Result<ServiceRequest, Error>>, { /// Construct `HttpAuthentication` middleware for the HTTP "Basic" authentication scheme. @@ -388,14 +388,14 @@ /// /// let middleware = HttpAuthentication::basic(validator); /// ``` - pub fn basic(process_fn: F) -> Self { + pub fn basic(process_fn: F) -> Self { Self::with_fn(process_fn) } } impl<F, O> HttpAuthentication<bearer::BearerAuth, F> where - F: Fn(ServiceRequest, bearer::BearerAuth) -> O, + F: Fn(ServiceRequest, bearer::BearerAuth) -> O, O: Future<Output = Result<ServiceRequest, Error>>, { /// Construct `HttpAuthentication` middleware for the HTTP "Bearer" authentication scheme. @@ -423,7 +423,7 @@ /// /// let middleware = HttpAuthentication::bearer(validator); /// ``` - pub fn bearer(process_fn: F) -> Self { + pub fn bearer(process_fn: F) -> Self { Self::with_fn(process_fn) } } @@ -432,7 +432,7 @@ where S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static, S::Future: 'static, - F: Fn(ServiceRequest, T) -> O + 'static, + F: Fn(ServiceRequest, T) -> O + 'static, O: Future<Output = Result<ServiceRequest, Error>> + 'static, T: AuthExtractor + 'static, B: MessageBody + 'static, @@ -444,7 +444,7 @@ type InitError = (); type Future = future::Ready<Result<Self::Transform, Self::InitError>>; - fn new_transform(&self, service: S) -> Self::Future { + fn new_transform(&self, service: S) -> Self::Future { future::ok(AuthenticationMiddleware { service: Rc::new(service), process_fn: self.process_fn.clone(), @@ -467,7 +467,7 @@ where S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static, S::Future: 'static, - F: Fn(ServiceRequest, T) -> O + 'static, + F: Fn(ServiceRequest, T) -> O + 'static, O: Future<Output = Result<ServiceRequest, Error>> + 'static, T: AuthExtractor + 'static, B: MessageBody + 'static, @@ -479,15 +479,15 @@ actix_service::forward_ready!(service); - fn call(&self, req: ServiceRequest) -> Self::Future { + fn call(&self, req: ServiceRequest) -> Self::Future { let process_fn = Arc::clone(&self.process_fn); let service = Rc::clone(&self.service); async move { let (req, credentials) = match Extract::<T>::new(req).await { - Ok(req) => req, - Err((err, req)) => { + Ok(req) => req, + Err((err, req)) => { return Ok(req.error_response(err)); } }; @@ -508,11 +508,11 @@ struct Extract<T> { req: Option<ServiceRequest>, f: Option<LocalBoxFuture<'static, Result<T, Error>>>, - _extractor: PhantomData<fn() -> T>, + _extractor: PhantomData<fn() -> T>, } impl<T> Extract<T> { - pub fn new(req: ServiceRequest) -> Self { + pub fn new(req: ServiceRequest) -> Self { Extract { req: Some(req), f: None, @@ -529,7 +529,7 @@ { type Output = Result<(ServiceRequest, T), (Error, ServiceRequest)>; - fn poll(mut self: Pin<&mut Self>, ctx: &mut Context<'_>) -> Poll<Self::Output> { + fn poll(mut self: Pin<&mut Self>, ctx: &mut Context<'_>) -> Poll<Self::Output> { if self.f.is_none() { let req = self.req.as_ref().expect("Extract future was polled twice!"); let f = T::from_service_request(req).map_err(Into::into); diff --git a/src/actix_web_httpauth/utils.rs.html b/src/actix_web_httpauth/utils.rs.html index c761ec401..6ab935a19 100644 --- a/src/actix_web_httpauth/utils.rs.html +++ b/src/actix_web_httpauth/utils.rs.html @@ -124,7 +124,7 @@ } impl<'a> Quoted<'a> { - pub fn new(s: &'a str) -> Quoted<'_> { + pub fn new(s: &'a str) -> Quoted<'_> { Quoted { inner: s.split('"').peekable(), state: State::YieldStr, @@ -135,21 +135,21 @@ impl<'a> Iterator for Quoted<'a> { type Item = &'a str; - fn next(&mut self) -> Option<Self::Item> { + fn next(&mut self) -> Option<Self::Item> { match self.state { - State::YieldStr => match self.inner.next() { - Some(s) => { + State::YieldStr => match self.inner.next() { + Some(s) => { self.state = State::YieldQuote; Some(s) } - None => None, + None => None, }, - State::YieldQuote => match self.inner.peek() { - Some(_) => { + State::YieldQuote => match self.inner.peek() { + Some(_) => { self.state = State::YieldStr; Some("\\\"") } - None => None, + None => None, }, } }