diff --git a/actix_cors/all.html b/actix_cors/all.html index 44e96afc5..5f2a1344d 100644 --- a/actix_cors/all.html +++ b/actix_cors/all.html @@ -1,6 +1,7 @@
#[non_exhaustive]
+
+ Enum actix_cors::CorsError
source · [−]#[non_exhaustive]
pub enum CorsError {
WildcardOrigin,
MissingOrigin,
@@ -19,37 +23,37 @@ pub enum CorsError {
OriginNotAllowed
Origin is not allowed to make this request.
MethodNotAllowed
Request method is not allowed.
HeadersNotAllowed
One or more request headers are not allowed.
-Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for CorsError
impl UnwindSafe for CorsError
Blanket Implementations
Mutably borrows from an owned value. Read more
-
Instruments this type with the provided Span
, returning an
+
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for CorsError
impl UnwindSafe for CorsError
Blanket Implementations
Mutably borrows from an owned value. Read more
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
+
Cross-Origin Resource Sharing (CORS) controls for Actix Web.
+Cross-Origin Resource Sharing (CORS) controls for Actix Web.
This middleware can be applied to both applications and resources. Once built, a
Cors
builder can be used as an argument for Actix Web’s App::wrap()
,
Scope::wrap()
, or Resource::wrap()
methods.
Builder for CORS middleware.
Errors that can occur when processing CORS guarded requests.
-pub struct Cors { /* fields omitted */ }
Builder for CORS middleware.
+pub struct Cors { /* private fields */ }
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
@@ -22,12 +26,12 @@ server will fail to start up or serve requests.
A very permissive set of default for quick development. Not recommended for production use.
+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.
*
). 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.
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.
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.
-Responses produced by the service.
-Errors produced by the service.
-The TransformService
value created by this factory
The future response value.
-Creates and returns a new Transform component, asynchronously
-Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
Responses produced by the service.
+Errors produced by the service.
+The TransformService
value created by this factory
The future response value.
+Creates and returns a new Transform component, asynchronously
+Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Opinionated request identity service for Actix Web apps.
+Opinionated request identity service for Actix Web apps.
IdentityService
middleware can be used with different policies types to store
identity information.
A cookie based policy is provided. CookieIdentityPolicy
uses cookies as identity storage.
Identity policy.
Helper trait that allows to get Identity.
-pub struct CookieIdentityPolicy(_);
Use cookies for request identity storage.
+pub struct CookieIdentityPolicy(_);
Use cookies for request identity storage.
See this page on MDN for details on cookie attributes.
use actix_web::App;
@@ -16,53 +18,53 @@
let app = App::new()
// wrap policy into identity middleware
.wrap(IdentityService::new(policy));
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 if key
is less than 32 bytes in length..
Sets the name of issued cookies.
-Sets the Path
attribute of issued cookies.
Sets the Domain
attribute of issued cookies.
Sets the Secure
attribute of issued cookies.
Sets the Max-Age
attribute of issued cookies.
Sets the Max-Age
attribute of issued cookies with given number of seconds.
Sets the HttpOnly
attribute of issued cookies.
Sets the name of issued cookies.
+Sets the Path
attribute of issued cookies.
Sets the Domain
attribute of issued cookies.
Sets the Secure
attribute of issued cookies.
Sets the Max-Age
attribute of issued cookies.
Sets the Max-Age
attribute of issued cookies with given number of seconds.
Sets the HttpOnly
attribute of issued cookies.
By default, the HttpOnly
attribute is omitted from issued cookies.
Sets the SameSite
attribute of issued cookies.
Sets the SameSite
attribute of issued cookies.
By default, the SameSite
attribute is omitted from issued cookies.
Accepts only users who have visited within given deadline.
+Accepts only users who have visited within given deadline.
In other words, invalidate a login after some amount of inactivity. Using this feature causes updated cookies to be issued on each response in order to record the user’s last visitation timestamp.
By default, visit deadline is disabled.
-Accepts only users who authenticated within the given deadline.
+Accepts only users who authenticated within the given deadline.
In other words, invalidate a login after some amount of time, regardless of activity.
While Max-Age
is useful in constraining the cookie
lifetime, it could be extended manually; using this feature encodes the deadline directly
into the issued cookies, making it immutable to users.
By default, login deadline is disabled.
-The return type of the middleware
-Parse the session from request and load data from a service identity.
-Write changes to response
-Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
The return type of the middleware
+Parse the session from request and load data from a service identity.
+Write changes to response
+Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub struct Identity(_);
The extractor type to obtain your identity from a request.
+pub struct Identity(_);
The extractor type to obtain your identity from a request.
use actix_web::*;
use actix_identity::Identity;
@@ -30,13 +32,13 @@
HttpResponse::Ok()
}
Return the claimed identity of the user associated request or None
if no identity can be
+
Return the claimed identity of the user associated request or None
if no identity can be
found associated with the request.
Extractor implementation for Identity type.
use actix_identity::Identity;
@@ -49,30 +51,30 @@ found associated with the request.
"Welcome Anonymous!".to_owned()
}
}
The associated error which can be returned.
-Create a Self from request parts asynchronously.
+The associated error which can be returned.
+Create a Self from request parts asynchronously.
Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub struct IdentityService<T> { /* fields omitted */ }
Request identity middleware
+pub struct IdentityService<T> { /* private fields */ }
Request identity middleware
use actix_web::App;
use actix_identity::{CookieIdentityPolicy, IdentityService};
@@ -13,30 +15,30 @@
let app = App::new()
// wrap policy into identity middleware
.wrap(IdentityService::new(policy));
Responses produced by the service.
-Errors produced by the service.
-The TransformService
value created by this factory
The future response value.
-Creates and returns a new Transform component, asynchronously
-Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
Responses produced by the service.
+Errors produced by the service.
+The TransformService
value created by this factory
The future response value.
+Creates and returns a new Transform component, asynchronously
+Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub trait IdentityPolicy: Sized + 'static {
- type Future: Future<Output = Result<Option<String>, Error>>;
- type ResponseFuture: Future<Output = Result<(), Error>>;
- fn from_request(&self, req: &mut ServiceRequest) -> Self::Future;
- fn to_response<B>(
&self,
identity: Option<String>,
changed: bool,
response: &mut ServiceResponse<B>
) -> Self::ResponseFuture;
+
+ Trait actix_identity::IdentityPolicy
source · [−]pub trait IdentityPolicy: Sized + 'static {
+ type Future: Future<Output = Result<Option<String>, Error>>;
+ type ResponseFuture: Future<Output = Result<(), Error>>;
+ fn from_request(&self, req: &mut ServiceRequest) -> Self::Future;
+ fn to_response<B>(
&self,
identity: Option<String>,
changed: bool,
response: &mut ServiceResponse<B>
) -> Self::ResponseFuture;
}
Expand description
Identity policy.
-Associated Types
type ResponseFuture: Future<Output = Result<(), Error>>
The return type of the middleware
-Required methods
fn from_request(&self, req: &mut ServiceRequest) -> Self::Future
Parse the session from request and load data from a service identity.
-fn to_response<B>(
&self,
identity: Option<String>,
changed: bool,
response: &mut ServiceResponse<B>
) -> Self::ResponseFuture
Write changes to response
-Implementors
type ResponseFuture = Ready<Result<(), Error>>
+
The return type of the middleware
+The return type of the middleware
+Parse the session from request and load data from a service identity.
+Write changes to response
+pub trait RequestIdentity {
+
+ Trait actix_identity::RequestIdentity
source · [−]pub trait RequestIdentity {
fn get_identity(&self) -> Option<String>;
}
Expand description
Helper trait that allows to get Identity.
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
.
-Required methods
fn get_identity(&self) -> Option<String>
Implementors
+
pub enum ProtoBufPayloadError {
+
+ Enum actix_protobuf::ProtoBufPayloadError
source · [−]pub enum ProtoBufPayloadError {
Overflow,
ContentType,
Serialize(ProtoBufEncodeError),
@@ -8,33 +10,33 @@
Payload(PayloadError),
}
Variants
Overflow
Payload size is bigger than 256k
ContentType
Content type error
-Serialize(ProtoBufEncodeError)
Tuple Fields
Serialize error
-Deserialize(ProtoBufDecodeError)
Tuple Fields
Deserialize error
-Payload(PayloadError)
Payload error
-Trait Implementations
Performs the conversion.
-
Performs the conversion.
-
Creates full response for error. Read more
+Serialize(ProtoBufEncodeError)
Serialize error
+Deserialize(ProtoBufDecodeError)
Deserialize error
+Payload(PayloadError)
Payload error
+Trait Implementations
Performs the conversion.
+
Performs the conversion.
+
Creates full response for error. Read more
fn status_code(&self) -> StatusCode
Returns appropriate status code for error. Read more
-Auto Trait Implementations
impl !RefUnwindSafe for ProtoBufPayloadError
impl Send for ProtoBufPayloadError
impl Sync for ProtoBufPayloadError
impl Unpin for ProtoBufPayloadError
impl !UnwindSafe for ProtoBufPayloadError
Blanket Implementations
Mutably borrows from an owned value. Read more
-
Instruments this type with the provided Span
, returning an
+
Auto Trait Implementations
impl !RefUnwindSafe for ProtoBufPayloadError
impl Send for ProtoBufPayloadError
impl Sync for ProtoBufPayloadError
impl Unpin for ProtoBufPayloadError
impl !UnwindSafe for ProtoBufPayloadError
Blanket Implementations
Mutably borrows from an owned value. Read more
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
+
pub struct ProtoBuf<T: Message>(pub T);
0: T
The associated error which can be returned.
-Create a Self from request parts asynchronously.
+pub struct ProtoBuf<T: Message>(pub T);
0: T
The associated error which can be returned.
+Create a Self from request parts asynchronously.
Convert self to HttpResponse
.
Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Type of resource’s path returned in resource_path
.
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub struct ProtoBufConfig { /* fields omitted */ }
Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
pub struct ProtoBufConfig { /* private fields */ }
Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
The type of value produced on completion.
-Attempt to resolve the future to a final value, registering +
The type of value produced on completion.
+Mutably borrows from an owned value. Read more
+Map this future’s output to a different type, returning a new future of the resulting type. Read more
-Map this future’s output to a different type, returning a new future of +
Map this future’s output to a different type, returning a new future of the resulting type. Read more
-Chain on a computation for when a future finished, passing the result of +
Chain on a computation for when a future finished, passing the result of
the future to the provided closure f
. Read more
Wrap this future in an Either
future, making it the left-hand variant
+
Wrap this future in an Either
future, making it the left-hand variant
of that Either
. Read more
Wrap this future in an Either
future, making it the right-hand variant
+
Wrap this future in an Either
future, making it the right-hand variant
of that Either
. Read more
Convert this future into a single element stream. Read more
-Flatten the execution of this future when the output of this +
Flatten the execution of this future when the output of this future is itself another future. Read more
-Flatten the execution of this future when the successful result of this +
Flatten the execution of this future when the successful result of this future is a stream. Read more
Fuse a future such that poll
will never again be called once it has
completed. This method can be used to turn any Future
into a
FusedFuture
. Read more
Do something with the output of a future before passing it on. Read more
+Do something with the output of a future before passing it on. Read more
Catches unwinding panics while polling the future. Read more
-Create a cloneable handle to this future where all handles will resolve +
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
+Wrap the future in a Box, pinning it. Read more
Turns a Future<Output = T>
into a
TryFuture<Ok = T, Error = ()
>. Read more
Turns a Future<Output = T>
into a
TryFuture<Ok = T, Error = Never
>. Read more
A convenience for calling Future::poll
on Unpin
future types.
Evaluates and consumes the future, returning the resulting output if +
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
+
into_future
)The output that the future will produce on completion.
-into_future
)Which kind of future are we turning this into?
-into_future
)Creates a future from a value.
-into_future
)The output that the future will produce on completion.
+into_future
)Which kind of future are we turning this into?
+into_future
)Creates a future from a value.
+Flattens the execution of this future when the successful result of this
future is a [Sink
]. Read more
Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub trait ProtoBufResponseBuilder {
+
+ Trait actix_protobuf::ProtoBufResponseBuilder
source · [−]pub trait ProtoBufResponseBuilder {
fn protobuf<T: Message>(&mut self, value: T) -> Result<HttpResponse, Error>;
-}
Required methods
Implementations on Foreign Types
Implementors
+}
pub enum Error {
+
+ Enum actix_redis::Error
source · [−]pub enum Error {
Redis(Error),
NotConnected,
Disconnected,
}
Expand description
General purpose actix redis error
-Variants
Redis(Error)
Tuple Fields
0: Error
NotConnected
Receiving message during reconnecting
+Variants
Redis(Error)
NotConnected
Receiving message during reconnecting
Disconnected
Cancel all waters when connection get dropped
-Trait Implementations
fn status_code(&self) -> StatusCode
Returns appropriate status code for error. Read more
+Trait Implementations
fn status_code(&self) -> StatusCode
Returns appropriate status code for error. Read more
fn error_response(&self) -> HttpResponse<BoxBody>
Creates full response for error. Read more
-Auto Trait Implementations
impl !RefUnwindSafe for Error
impl !UnwindSafe for Error
Blanket Implementations
Mutably borrows from an owned value. Read more
-
Instruments this type with the provided Span
, returning an
+
Auto Trait Implementations
impl !RefUnwindSafe for Error
impl !UnwindSafe for Error
Blanket Implementations
Mutably borrows from an owned value. Read more
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
+
pub enum RespError {
+
+ Enum actix_redis::RespError
[−]pub enum RespError {
Internal(String),
IO(Error),
RESP(String, Option<RespValue>),
Remote(String),
Connection(ConnectionReason),
Unexpected(String),
-}
Variants
Internal(String)
Tuple Fields
0: String
A non-specific internal error that prevented an operation from completing
-IO(Error)
Tuple Fields
0: Error
An IO error occurred
-RESP(String, Option<RespValue>)
A RESP parsing/serialising error occurred
-Remote(String)
Tuple Fields
0: String
A remote error
-Connection(ConnectionReason)
Error creating a connection, or an error with a connection being closed unexpectedly
-Unexpected(String)
Tuple Fields
0: String
An unexpected error. In this context “unexpected” means
+}
Variants
Internal(String)
A non-specific internal error that prevented an operation from completing
+IO(Error)
An IO error occurred
+RESP(String, Option<RespValue>)
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
“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
+Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Error
impl !UnwindSafe for Error
Blanket Implementations
Mutably borrows from an owned value. Read more
-Auto Trait Implementations
impl !RefUnwindSafe for Error
impl !UnwindSafe for Error
Blanket Implementations
Mutably borrows from an owned value. Read more
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
+
pub enum RespValue {
+RespValue in actix_redis - Rust
+
+ Enum actix_redis::RespValue
[−]pub enum RespValue {
Nil,
Array(Vec<RespValue, Global>),
BulkString(Vec<u8, Global>),
@@ -10,53 +12,53 @@
}
Expand description
A single RESP value, this owns the data that is read/to-be written to Redis.
It is cloneable to allow multiple copies to be delivered in certain circumstances, e.g. multiple
subscribers to the same topic.
-Variants
Nil
Array(Vec<RespValue, Global>)
Zero, one or more other RespValue
s.
-BulkString(Vec<u8, Global>)
A bulk string. In Redis terminology a string is a byte-array, so this is stored as a
+
Variants
Nil
Array(Vec<RespValue, Global>)
Zero, one or more other RespValue
s.
+BulkString(Vec<u8, Global>)
A bulk string. In Redis terminology a string is a byte-array, so this is stored as a
vector of u8
s to allow clients to interpret the bytes as appropriate.
-Error(String)
Tuple Fields
0: String
An error from the Redis server
-Integer(i64)
Tuple Fields
0: i64
Redis documentation defines an integer as being a signed 64-bit integer:
+
Error(String)
An error from the Redis server
+Integer(i64)
Redis documentation defines an integer as being a signed 64-bit integer:
https://redis.io/topics/protocol#resp-integers
-SimpleString(String)
Tuple Fields
0: String
Implementations
impl RespValue
pub fn append<T>(self, other: impl IntoIterator<Item = T>) -> RespValue where
T: Into<RespValue>,
Convenience function for building dynamic Redis commands with variable numbers of
+
SimpleString(String)
Implementations
impl RespValue
pub fn append<T>(self, other: impl IntoIterator<Item = T>) -> RespValue where
T: Into<RespValue>,
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
Trait Implementations
impl StructuralEq for RespValue
impl StructuralPartialEq for RespValue
Auto Trait Implementations
impl RefUnwindSafe for RespValue
impl UnwindSafe for RespValue
Blanket Implementations
Mutably borrows from an owned value. Read more
-
Compare self to key
and return true
if they are equal.
-
Instruments this type with the provided Span
, returning an
+
impl StructuralEq for RespValue
impl StructuralPartialEq for RespValue
Auto Trait Implementations
impl RefUnwindSafe for RespValue
impl UnwindSafe for RespValue
Blanket Implementations
Mutably borrows from an owned value. Read more
+
Compare self to key
and return true
if they are equal.
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
+
pub enum SameSite {
+
+ Enum actix_redis::SameSite
source · [−]pub enum SameSite {
Strict,
Lax,
None,
@@ -23,7 +25,7 @@ definition are subject to change.
Variants
Strict
The “Strict” SameSite
attribute.
Lax
The “Lax” SameSite
attribute.
None
The “None” SameSite
attribute.
-Implementations
Returns true
if self
is SameSite::Strict
and false
otherwise.
+Implementations
Returns true
if self
is SameSite::Strict
and false
otherwise.
Example
use cookie::SameSite;
@@ -31,7 +33,7 @@ definition are subject to change.
assert!(strict.is_strict());
assert!(!strict.is_lax());
assert!(!strict.is_none());
-
Returns true
if self
is SameSite::Lax
and false
otherwise.
Example
use cookie::SameSite;
@@ -39,7 +41,7 @@ definition are subject to change.
assert!(lax.is_lax());
assert!(!lax.is_strict());
assert!(!lax.is_none());
-Trait Implementations
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for SameSite
impl UnwindSafe for SameSite
Blanket Implementations
Mutably borrows from an owned value. Read more
-
Compare self to key
and return true
if they are equal.
-
Instruments this type with the provided Span
, returning an
+
Auto Trait Implementations
impl RefUnwindSafe for SameSite
impl UnwindSafe for SameSite
Blanket Implementations
Mutably borrows from an owned value. Read more
+
Compare self to key
and return true
if they are equal.
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
+
Redis integration for Actix and session store for Actix Web.
+Redis integration for Actix and session store for Actix Web.
pub struct Command(pub RespValue);
Command for send data to Redis
-0: RespValue
The type of value that this message will resolved with if it is +
pub struct Command(pub RespValue);
Command for send data to Redis
+0: RespValue
Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub struct RedisActor { /* fields omitted */ }
Redis communication actor
-Start new Supervisor
with RedisActor
.
Actor execution context type
-Called when an actor gets polled the first time.
+pub struct RedisActor { /* private fields */ }
Redis communication actor
+Start new Supervisor
with RedisActor
.
Actor execution context type
+Called when an actor gets polled the first time.
Called after an actor is in Actor::Stopping
state. Read more
Start new actor in arbiter’s thread.
Called for every message emitted by the stream.
Register a Stream to the actor context.
-Called when the supervisor restarts a failed actor.
-Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
Called when the supervisor restarts a failed actor.
+Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub struct RedisSession(_);
Use redis as session storage.
+pub struct RedisSession(_);
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.
Constructor panics if key length is less than 32 bytes.
-Create new redis session backend
+Create new redis session backend
addr
- address of the redis serverSet custom cookie name for session ID.
-Set custom cookie path.
-Set custom cookie domain.
-Set custom cookie secure.
+Set custom cookie name for session ID.
+Set custom cookie path.
+Set custom cookie domain.
+Set custom cookie secure.
If the secure
field is set, a cookie will only be transmitted when the
connection is secure - i.e. https
.
Default is false.
-Set custom cookie max-age.
+Set custom cookie max-age.
Use None
for session-only cookies.
Set custom cookie SameSite
attribute.
Set custom cookie SameSite
attribute.
By default, the attribute is omitted.
-Set custom cookie HttpOnly
policy.
Set custom cookie HttpOnly
policy.
Default is true.
-Responses produced by the service.
-Errors produced by the service.
-The TransformService
value created by this factory
The future response value.
-Creates and returns a new Transform component, asynchronously
-Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
Responses produced by the service.
+Errors produced by the service.
+The TransformService
value created by this factory
The future response value.
+Creates and returns a new Transform component, asynchronously
+Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub enum SessionStatus {
+
+ Enum actix_session::SessionStatus
source · [−]pub enum SessionStatus {
Changed,
Purged,
Renewed,
@@ -16,33 +18,33 @@ be notified of the refresh.
Unchanged
Session is unchanged from when last seen (if exists).
This state also captures new (previously unissued) sessions such as a user’s first
site visit.
-Trait Implementations
Returns the “default value” for a type. Read more
-
This method tests for self
and other
values to be equal, and is used
+
Trait Implementations
Returns the “default value” for a type. Read more
+
Auto Trait Implementations
impl RefUnwindSafe for SessionStatus
impl Send for SessionStatus
impl Sync for SessionStatus
impl Unpin for SessionStatus
impl UnwindSafe for SessionStatus
Blanket Implementations
Mutably borrows from an owned value. Read more
-
Instruments this type with the provided Span
, returning an
+
Auto Trait Implementations
impl RefUnwindSafe for SessionStatus
impl Send for SessionStatus
impl Sync for SessionStatus
impl Unpin for SessionStatus
impl UnwindSafe for SessionStatus
Blanket Implementations
Mutably borrows from an owned value. Read more
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
+
Sessions for Actix Web.
+Sessions for Actix Web.
Provides a general solution for session management. Session middleware could provide different implementations which could be accessed via general session API.
This crate provides a general solution for session management and includes a cookie backend. @@ -42,5 +44,5 @@ modifying session data.
Status of a Session
.
Extraction of a Session
object.
pub struct CookieSession(_);
Use cookies for session storage.
+pub struct CookieSession(_);
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
@@ -30,53 +32,53 @@ cause troubles when reading cookie, if they are not properly percent encoded.
Construct new signed CookieSession
instance.
Panics if key length is less than 32 bytes.
-Construct new private CookieSession
instance.
Panics if key length is less than 32 bytes.
-Sets the path
field in the session cookie being built.
Sets the name
field in the session cookie being built.
Sets the domain
field in the session cookie being built.
When true, prevents adding session cookies to responses until +
Sets the path
field in the session cookie being built.
Sets the name
field in the session cookie being built.
Sets the domain
field in the session cookie being built.
When true, prevents adding session cookies to responses until
the session contains data. Default is false
.
Useful when trying to comply with laws that require consent for setting cookies.
-Sets the secure
field in the session cookie being built.
Sets the secure
field in the session cookie being built.
If the secure
field is set, a cookie will only be transmitted when the
connection is secure - i.e. https
Sets the http_only
field in the session cookie being built.
Sets the same_site
field in the session cookie being built.
Sets the max-age
field in the session cookie being built.
Sets the max-age
field in the session cookie being built.
Sets the expires
field in the session cookie being built.
Sets the expires
field in the session cookie being built.
Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
Sets the http_only
field in the session cookie being built.
Sets the same_site
field in the session cookie being built.
Sets the max-age
field in the session cookie being built.
Sets the max-age
field in the session cookie being built.
Sets the expires
field in the session cookie being built.
Sets the expires
field in the session cookie being built.
Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub struct Session(_);
The high-level interface you use to modify session data.
+pub struct Session(_);
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
.
HttpRequest
, ServiceRequest
, and Ok("Welcome!")
}
Get a value
from the session.
Get all raw key-value data from the session.
+Get a value
from the session.
Get all raw key-value data from the session.
Note that values are JSON encoded.
-Inserts a key-value pair into the session.
+Inserts a key-value pair into the session.
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.
-Remove value from the session.
If present, the JSON encoded value is returned.
-Remove value from the session and deserialize.
+Remove value from the session and deserialize.
Returns None if key was not present in session. Returns T if deserialization succeeds, otherwise returns un-deserialized JSON string.
-Adds the given key-value pairs to the session on the request.
+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.
Returns session status and iterator of key-value pairs of changes.
-Returns session status and iterator of key-value pairs of changes.
+Extractor implementation for Session type.
use actix_session::Session;
@@ -58,27 +60,27 @@ already be JSON serialized.
let count = session.get::<i32>("counter")?.unwrap();
Ok(format!("Counter: {}", count))
}
The associated error which can be returned.
-Create a Self from request parts asynchronously.
+The associated error which can be returned.
+Create a Self from request parts asynchronously.
Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub trait UserSession {
+
+ Trait actix_session::UserSession
source · [−]pub trait UserSession {
fn get_session(&self) -> Session;
}
Expand description
Extraction of a Session
object.
-Required methods
fn get_session(&self) -> Session
Extract the Session
object
-Implementations on Foreign Types
Implementors
+
Extract the Session
object
Extractor for the “Basic” HTTP Authentication Scheme
+Extractor for the “Basic” HTTP Authentication Scheme
Extractor for HTTP Basic auth.
BasicAuth
extractor configuration,
used for WWW-Authenticate
header later.
pub struct BasicAuth(_);
Extractor for HTTP Basic auth.
+pub struct BasicAuth(_);
Extractor for HTTP Basic auth.
use actix_web::Result;
use actix_web_httpauth::extractors::basic::BasicAuth;
@@ -24,38 +26,38 @@ response header.
.app_data(Config::default().realm("Restricted area"))
.service(web::resource("/index.html").route(web::get().to(index)));
}
The associated error which can be returned.
-Future that resolves into extracted credentials type.
-Parse the authentication credentials from the actix’ ServiceRequest
.
The associated error which can be returned.
-Create a Self from request parts asynchronously.
+The associated error which can be returned.
+Future that resolves into extracted credentials type.
+Parse the authentication credentials from the actix’ ServiceRequest
.
The associated error which can be returned.
+Create a Self from request parts asynchronously.
Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub struct Config(_);
BasicAuth
extractor configuration,
+
pub struct Config(_);
BasicAuth
extractor configuration,
used for WWW-Authenticate
header later.
Set challenge realm
attribute.
Convert the config instance into a HTTP challenge.
-Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
Convert the config instance into a HTTP challenge.
+Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub enum Error {
+
+ Enum actix_web_httpauth::extractors::bearer::Error
source · [−]pub enum Error {
InvalidRequest,
InvalidToken,
InsufficientScope,
@@ -13,49 +15,49 @@ 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.
-Trait Implementations
This method tests for self
and other
values to be equal, and is used
+
Implementations
Returns HTTP status code suitable for current error type.
+Trait Implementations
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 <=
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
+Auto Trait Implementations
impl RefUnwindSafe for Error
impl UnwindSafe for Error
Blanket Implementations
Mutably borrows from an owned value. Read more
-
Compare self to key
and return true
if they are equal.
-
Instruments this type with the provided Span
, returning an
+
Auto Trait Implementations
impl RefUnwindSafe for Error
impl UnwindSafe for Error
Blanket Implementations
Mutably borrows from an owned value. Read more
+
Compare self to key
and return true
if they are equal.
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
+
Extractor for the “Bearer” HTTP Authentication Scheme
+Extractor for the “Bearer” HTTP Authentication Scheme
Extractor for HTTP Bearer auth
BearerAuth extractor configuration.
pub struct BearerAuth(_);
Extractor for HTTP Bearer auth
+pub struct BearerAuth(_);
Extractor for HTTP Bearer auth
use actix_web_httpauth::extractors::bearer::BearerAuth;
@@ -27,37 +29,37 @@ response header.
)
.service(web::resource("/index.html").route(web::get().to(index)));
}
Future that resolves into extracted credentials type.
-The associated error which can be returned.
-Parse the authentication credentials from the actix’ ServiceRequest
.
The associated error which can be returned.
-Create a Self from request parts asynchronously.
+Future that resolves into extracted credentials type.
+The associated error which can be returned.
+Parse the authentication credentials from the actix’ ServiceRequest
.
The associated error which can be returned.
+Create a Self from request parts asynchronously.
Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub struct Config(_);
BearerAuth extractor configuration.
-Set challenge scope
attribute.
pub struct Config(_);
BearerAuth extractor configuration.
+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
accessing the requested resource.
Set challenge realm
attribute.
Convert the config instance into a HTTP challenge.
-Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
Convert the config instance into a HTTP challenge.
+Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Type-safe authentication information extractors
+Type-safe authentication information extractors
Extractor for the “Basic” HTTP Authentication Scheme
Extractor for the “Bearer” HTTP Authentication Scheme
@@ -11,5 +13,5 @@ HTTP authentication scheme credentials from the request.Trait implemented for types that provides configuration for the authentication extractors.
-pub struct AuthenticationError<C: Challenge> { /* fields omitted */ }
Authentication error returned by authentication extractors.
+pub struct AuthenticationError<C: Challenge> { /* private fields */ }
Authentication error returned by authentication extractors.
Different extractors may extend AuthenticationError
implementation
in order to provide access to inner challenge fields.
Extended error customization for HTTP Bearer
auth.
Attach Error
to the current Authentication error.
Extended error customization for HTTP Bearer
auth.
Attach Error
to the current Authentication error.
Error status code will be changed to the one provided by the kind
Error.
Attach error description to the current Authentication error.
-Attach error URI to the current Authentication error.
+Attach error description to the current Authentication error.
+Attach error URI to the current Authentication error.
It is up to implementor to provide properly formed absolute URI.
-Creates new authentication error from the provided challenge
.
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 challenge instance.
+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.
-Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub trait AuthExtractor: Sized {
- type Error: Into<Error>;
- type Future: Future<Output = Result<Self, Self::Error>>;
- fn from_service_request(req: &ServiceRequest) -> Self::Future;
+
+ Trait actix_web_httpauth::extractors::AuthExtractor
source · [−]pub trait AuthExtractor: Sized {
+ type Error: Into<Error>;
+ type Future: Future<Output = Result<Self, Self::Error>>;
+ fn from_service_request(req: &ServiceRequest) -> Self::Future;
}
Expand description
Trait implemented by types that can extract
HTTP authentication scheme credentials from the request.
It is very similar to actix’ FromRequest
trait,
@@ -11,8 +13,8 @@ except it operates with a ServiceRequest
struct instead,
therefore it can be used in the middlewares.
You will not need it unless you want to implement your own
authentication scheme.
-Associated Types
Required methods
fn from_service_request(req: &ServiceRequest) -> Self::Future
Parse the authentication credentials from the actix’ ServiceRequest
.
-Implementations on Foreign Types
Implementors
+
Parse the authentication credentials from the actix’ ServiceRequest
.
pub trait AuthExtractorConfig {
- type Inner: Challenge;
- fn into_inner(self) -> Self::Inner;
+
+ Trait actix_web_httpauth::extractors::AuthExtractorConfig
source · [−]pub trait AuthExtractorConfig {
+ type Inner: Challenge;
+ fn into_inner(self) -> Self::Inner;
}
Expand description
Trait implemented for types that provides configuration
for the authentication extractors.
-Associated Types
Required methods
fn into_inner(self) -> Self::Inner
Convert the config instance into a HTTP challenge.
-Implementors
+
Convert the config instance into a HTTP challenge.
+pub enum ParseError {
+
+ Enum actix_web_httpauth::headers::authorization::ParseError
source · [−]pub enum ParseError {
Invalid,
MissingScheme,
MissingField(&'static str),
@@ -12,37 +14,37 @@
your own authentication scheme.
Variants
Invalid
Header value is malformed
MissingScheme
Authentication scheme is missing
-MissingField(&'static str)
Tuple Fields
0: &'static str
Required authentication field is missing
-ToStrError(ToStrError)
Tuple Fields
0: ToStrError
Unable to convert header into the str
-Base64DecodeError(DecodeError)
Malformed base64 string
-Utf8Error(Utf8Error)
Tuple Fields
0: Utf8Error
Malformed UTF-8 string
-Trait Implementations
Performs the conversion.
-Auto Trait Implementations
impl RefUnwindSafe for ParseError
impl Send for ParseError
impl Sync for ParseError
impl Unpin for ParseError
impl UnwindSafe for ParseError
Blanket Implementations
Mutably borrows from an owned value. Read more
-
Instruments this type with the provided Span
, returning an
+
MissingField(&'static str)
Required authentication field is missing
+ToStrError(ToStrError)
Unable to convert header into the str
+Base64DecodeError(DecodeError)
Malformed base64 string
+Utf8Error(Utf8Error)
Malformed UTF-8 string
+Trait Implementations
Performs the conversion.
+Auto Trait Implementations
impl RefUnwindSafe for ParseError
impl Send for ParseError
impl Sync for ParseError
impl Unpin for ParseError
impl UnwindSafe for ParseError
Blanket Implementations
Mutably borrows from an owned value. Read more
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
+
Authorization
header and various auth schemes
Authorization
header and various auth schemes
Authorization
header, defined in RFC 7235
Authentication scheme for Authorization
header.
pub struct Authorization<S: Scheme>(_);
Authorization
header, defined in RFC 7235
pub struct Authorization<S: Scheme>(_);
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 @@ -14,59 +16,59 @@ scheme.
Ok(format!("Hello, {}!", auth.as_ref().user_id())) }Consumes Authorization
header and returns inner Scheme
+
Consumes Authorization
header and returns inner Scheme
implementation.
Returns the “default value” for a type. Read more
-Performs the conversion.
-This method tests for self
and other
values to be equal, and is used
+
Returns the “default value” for a type. Read more
+Performs the conversion.
+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 <=
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
The type returned in the event of a conversion error.
-Try to convert value to a HeaderValue.
-Mutably borrows from an owned value. Read more
-Compare self to key
and return true
if they are equal.
Instruments this type with the provided Span
, returning an
+
The type returned in the event of a conversion error.
+Try to convert value to a HeaderValue.
+Mutably borrows from an owned value. Read more
+Compare self to key
and return true
if they are equal.
Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub struct Basic { /* fields omitted */ }
Credentials for Basic
authentication scheme, defined in RFC 7617
Creates Basic
credentials with provided user_id
and optional
+
pub struct Basic { /* private fields */ }
Credentials for Basic
authentication scheme, defined in RFC 7617
Creates Basic
credentials with provided user_id
and optional
password
.
let credentials = Basic::new("Alladin", Some("open sesame"));
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 <=
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
Try to parse the authentication scheme from the Authorization
header.
The type returned in the event of a conversion error.
-Try to convert value to a HeaderValue.
-Mutably borrows from an owned value. Read more
-Compare self to key
and return true
if they are equal.
Instruments this type with the provided Span
, returning an
+
Try to parse the authentication scheme from the Authorization
header.
The type returned in the event of a conversion error.
+Try to convert value to a HeaderValue.
+Mutably borrows from an owned value. Read more
+Compare self to key
and return true
if they are equal.
Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub struct Bearer { /* fields omitted */ }
Credentials for Bearer
authentication scheme, defined in RFC6750
pub struct Bearer { /* private fields */ }
Credentials for Bearer
authentication scheme, defined in RFC6750
Should be used in combination with
Authorization
header.
Creates new Bearer
credentials with the token provided.
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 <=
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
Try to parse the authentication scheme from the Authorization
header.
The type returned in the event of a conversion error.
-Try to convert value to a HeaderValue.
-Mutably borrows from an owned value. Read more
-Compare self to key
and return true
if they are equal.
Instruments this type with the provided Span
, returning an
+
Try to parse the authentication scheme from the Authorization
header.
The type returned in the event of a conversion error.
+Try to convert value to a HeaderValue.
+Mutably borrows from an owned value. Read more
+Compare self to key
and return true
if they are equal.
Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub trait Scheme: TryIntoHeaderValue + Debug + Display + Clone + Send + Sync {
+
+ Trait actix_web_httpauth::headers::authorization::Scheme
source · [−]pub trait Scheme: TryIntoHeaderValue + Debug + Display + Clone + Send + Sync {
fn parse(header: &HeaderValue) -> Result<Self, ParseError>;
}
Expand description
Authentication scheme for Authorization
header.
-Required methods
fn parse(header: &HeaderValue) -> Result<Self, ParseError>
Try to parse the authentication scheme from the Authorization
header.
-Implementors
+
Try to parse the authentication scheme from the Authorization
header.
Typed HTTP headers
+Typed HTTP headers
Authorization
header and various auth schemes
WWW-Authenticate
header and various auth challenges
Challenge for the “Basic” HTTP Authentication Scheme
+Challenge for the “Basic” HTTP Authentication Scheme
Challenge for WWW-Authenticate
header with HTTP Basic auth scheme,
described in RFC 7617
pub struct Basic { /* fields omitted */ }
Challenge for WWW-Authenticate
header with HTTP Basic auth scheme,
+
pub struct Basic { /* private fields */ }
Challenge for WWW-Authenticate
header with HTTP Basic auth scheme,
described in RFC 7617
use actix_web_httpauth::headers::www_authenticate::basic::Basic;
@@ -13,61 +15,61 @@ described in RFC 7617
.insert_header(WwwAuthenticate(challenge))
.finish()
}
Creates new Basic
challenge from the provided realm
field value.
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 <=
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
The type returned in the event of a conversion error.
-Try to convert value to a HeaderValue.
-Mutably borrows from an owned value. Read more
-Compare self to key
and return true
if they are equal.
Instruments this type with the provided Span
, returning an
+
The type returned in the event of a conversion error.
+Try to convert value to a HeaderValue.
+Mutably borrows from an owned value. Read more
+Compare self to key
and return true
if they are equal.
Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub enum Error {
+
+ Enum actix_web_httpauth::headers::www_authenticate::bearer::Error
source · [−]pub enum Error {
InvalidRequest,
InvalidToken,
InsufficientScope,
@@ -13,49 +15,49 @@ 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.
-Trait Implementations
This method tests for self
and other
values to be equal, and is used
+
Implementations
Returns HTTP status code suitable for current error type.
+Trait Implementations
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 <=
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
+Auto Trait Implementations
impl RefUnwindSafe for Error
impl UnwindSafe for Error
Blanket Implementations
Mutably borrows from an owned value. Read more
-
Compare self to key
and return true
if they are equal.
-
Instruments this type with the provided Span
, returning an
+
Auto Trait Implementations
impl RefUnwindSafe for Error
impl UnwindSafe for Error
Blanket Implementations
Mutably borrows from an owned value. Read more
+
Compare self to key
and return true
if they are equal.
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
+
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
-
+
Challenge for the “Bearer” HTTP Authentication Scheme
+Challenge for the “Bearer” HTTP Authentication Scheme
Challenge for WWW-Authenticate
header with HTTP Bearer auth scheme,
described in RFC 6750
Builder for the Bearer
challenge.
pub struct Bearer { /* fields omitted */ }
Challenge for WWW-Authenticate
header with HTTP Bearer auth scheme,
+
pub struct Bearer { /* private fields */ }
Challenge for WWW-Authenticate
header with HTTP Bearer auth scheme,
described in RFC 6750
use actix_web_httpauth::headers::www_authenticate::bearer::{
@@ -21,58 +23,58 @@ described in RFC 6750insert_header(WwwAuthenticate(challenge))
.finish()
}
Creates the builder for Bearer
challenge.
Creates the builder for Bearer
challenge.
let challenge = Bearer::build()
.realm("Restricted area")
.scope("openid profile email")
.finish();
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 <=
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
The type returned in the event of a conversion error.
-Try to convert value to a HeaderValue.
-Mutably borrows from an owned value. Read more
-Compare self to key
and return true
if they are equal.
Instruments this type with the provided Span
, returning an
+
The type returned in the event of a conversion error.
+Try to convert value to a HeaderValue.
+Mutably borrows from an owned value. Read more
+Compare self to key
and return true
if they are equal.
Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub struct BearerBuilder(_);
Builder for the Bearer
challenge.
pub struct BearerBuilder(_);
Provides the scope
attribute, as defined in RFC6749, Section 3.3
Provides the realm
attribute, as defined in RFC2617
Provides the error
attribute, as defined in RFC6750, Section 3.1
Provides the error_description
attribute, as defined in RFC6750, Section 3
Provides the error_uri
attribute, as defined in RFC6750, Section 3
Provides the scope
attribute, as defined in RFC6749, Section 3.3
Provides the realm
attribute, as defined in RFC2617
Provides the error
attribute, as defined in RFC6750, Section 3.1
Provides the error_description
attribute, as defined in RFC6750, Section 3
Provides the error_uri
attribute, as defined in RFC6750, Section 3
It is up to implementor to provide properly-formed absolute URI.
-Returns the “default value” for a type. Read more
-Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
Returns the “default value” for a type. Read more
+Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
WWW-Authenticate
header and various auth challenges
WWW-Authenticate
header and various auth challenges
pub struct WwwAuthenticate<C: Challenge>(pub C);
WWW-Authenticate
header, described in RFC 7235
pub struct WwwAuthenticate<C: Challenge>(pub C);
0: C
Returns the “default value” for a type. Read more
-This method tests for self
and other
values to be equal, and is used
+
0: C
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 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 <=
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
The type returned in the event of a conversion error.
-Try to convert value to a HeaderValue.
-Mutably borrows from an owned value. Read more
-Compare self to key
and return true
if they are equal.
Instruments this type with the provided Span
, returning an
+
The type returned in the event of a conversion error.
+Try to convert value to a HeaderValue.
+Mutably borrows from an owned value. Read more
+Compare self to key
and return true
if they are equal.
Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
pub trait Challenge: TryIntoHeaderValue + Debug + Display + Clone + Send + Sync {
+
+
HTTP authentication schemes for actix-web.
+HTTP authentication schemes for actix-web.
Provides:
Type-safe authentication information extractors
Typed HTTP headers
HTTP Authentication middleware.
-HTTP Authentication middleware.
+HTTP Authentication middleware.
Middleware for checking HTTP authentication.
-pub struct HttpAuthentication<T, F> where
T: AuthExtractor, { /* fields omitted */ }
Middleware for checking HTTP authentication.
+pub struct HttpAuthentication<T, F> where
T: AuthExtractor, { /* private fields */ }
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
successful validation F
callback is required to return the ServiceRequest
back.
Construct HttpAuthentication
middleware with the provided auth extractor T
and
+
Construct HttpAuthentication
middleware with the provided auth extractor T
and
validation callback F
.
Construct HttpAuthentication
middleware for the HTTP “Basic” authentication scheme.
// 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
@@ -21,7 +23,7 @@ validation callback F
.
}
let middleware = HttpAuthentication::basic(validator);
Construct HttpAuthentication
middleware for the HTTP “Bearer” authentication scheme.
async fn validator(req: ServiceRequest, credentials: BearerAuth) -> Result<ServiceRequest, Error> {
if credentials.token() == "mF_9.B5f-4.1JqM" {
@@ -37,35 +39,35 @@ validation callback F
.
}
let middleware = HttpAuthentication::bearer(validator);
Mutably borrows from an owned value. Read more
-Instruments this type with the provided Span
, returning an
+
Mutably borrows from an owned value. Read more
+Attaches the provided Subscriber
to this type, returning a
+
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
+
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
fn:
) to \
restrict the search to a given item kind.","Accepted kinds are: fn
, mod
, struct
, \
enum
, trait
, type
, macro
, \
diff --git a/rust-logo.png b/rust-logo.png
deleted file mode 100644
index 74b4bd695..000000000
Binary files a/rust-logo.png and /dev/null differ
diff --git a/rust-logo.svg b/rust-logo.svg
new file mode 100644
index 000000000..62424d8ff
--- /dev/null
+++ b/rust-logo.svg
@@ -0,0 +1,61 @@
+
diff --git a/rustdoc.css b/rustdoc.css
index 1f77c75cb..deed2f8aa 100644
--- a/rustdoc.css
+++ b/rustdoc.css
@@ -1 +1 @@
- @font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular.woff2") format("woff2"),url("FiraSans-Regular.woff") format('woff');font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium.woff2") format("woff2"),url("FiraSans-Medium.woff") format('woff');font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular.ttf.woff2") format("woff2"),url("SourceSerif4-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It.ttf.woff2") format("woff2"),url("SourceSerif4-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold.ttf.woff2") format("woff2"),url("SourceSerif4-Bold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular.ttf.woff2") format("woff2"),url("SourceCodePro-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It.ttf.woff2") format("woff2"),url("SourceCodePro-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold.ttf.woff2") format("woff2"),url("SourceCodePro-Semibold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic.ttf.woff2") format("woff2"),url("NanumBarunGothic.ttf.woff") format("woff");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}html{content:"";}@media (prefers-color-scheme:light){html{content:"light";}}@media (prefers-color-scheme:dark){html{content:"dark";}}body{font:16px/1.4 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;-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;}h1,h2,h3,h4{margin:20px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}h1.fqn{display:flex;border-bottom:1px dashed;margin-top:0;padding-left:1px;}h1.fqn>.in-band>a:hover{text-decoration:underline;}h2,.top-doc h3,.top-doc h4,.sidebar .others h3{border-bottom:1px solid;}h3.code-header{font-size:1.1em;}h4.code-header{font-size:1em;}h3.code-header,h4.code-header{font-weight:600;border-bottom-style: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;}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,div.impl-items>div:not(.docblock):not(.item-info),.content ul.crate a.crate,a.srclink,#main-content>ul.docblock>li>a{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}.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;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.source main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}.source .width-limiter{max-width:unset;}details:not(.rustdoc-toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.1em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;}.docblock.item-decl{margin-left:0;}.item-decl pre{overflow-x:auto;}.source .content pre{padding:20px;}img{max-width:100%;}li{position:relative;}.source .content{max-width:none;overflow:visible;margin-left:0px;}nav.sub{position:relative;font-size:16px;text-transform:uppercase;}.sub-container{display:flex;flex-direction:row;flex-wrap:nowrap;}.sub-logo-container{display:none;margin-right:20px;}.source .sub-logo-container{display:block;}.source .sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.sidebar{width:200px;overflow-y:scroll;position:sticky;min-width:200px;height:100vh;top:0;left:0;}.rustdoc.source .sidebar{width:50px;min-width:0px;max-width:300px;flex-grow:0;flex-shrink:0;flex-basis:auto;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.source .sidebar>*:not(:first-child){transition:opacity 0.5s,visibility 0.2s;opacity:0;visibility:hidden;}.source .sidebar.expanded{overflow-y:auto;}.source .sidebar.expanded>*{opacity:1;visibility:visible;}*{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;}.hidden{display:none !important;}.logo-container{display:flex;margin-top:10px;margin-bottom:10px;justify-content:center;}.logo-container>img{height:100px;width:100px;}.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;}.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:not(.source) .example-wrap>pre.line-numbers{width:auto;overflow-x:visible;}.rustdoc .example-wrap>pre{margin:0;}#search{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;}.top-doc .docblock h2{font-size:1.3em;}.top-doc .docblock h3{font-size:1.15em;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.1em;}.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>:not(.information){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;overflow-wrap:anywhere;}.in-band>code,.in-band>.code-header{display:inline-block;}#main-content{position:relative;}#main-content>.since{top:inherit;font-family:"Fira Sans",Arial,sans-serif;}.content table:not(.table-display){border-spacing:0 5px;}.content td{vertical-align:top;}.content td:first-child{padding-right:20px;}.content td p:first-child{margin-top:0;}.content td h1,.content td h2{margin-left:0;font-size:1.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 .docblock,.content .impl-items .item-info{margin-bottom:.6em;}.content .impl-items>.item-info{margin-left:40px;}.methods>.item-info,.content .impl-items>.item-info{margin-top:-8px;}.impl-items{flex-basis:100%;}#main-content>.item-info{margin-top:0;}nav:not(.sidebar){flex-grow:1;border-bottom:1px solid;padding-bottom:10px;margin-bottom:25px;}.source nav:not(.sidebar).sub{margin-left:32px;}nav.main{padding:20px 0;text-align:center;}nav.main .current{border-top:1px solid;border-bottom:1px solid;}nav.main .separator{border:1px solid;display:inline-block;height:23px;margin:0 20px;}nav.sum{text-align:right;}nav.sub form{display:inline;}a{text-decoration:none;background:transparent;}.small-section-header{display:flex;justify-content:space-between;position:relative;}.small-section-header:hover>.anchor{display:initial;}.in-band:hover>.anchor,.impl:hover>.anchor,.method.trait-impl:hover>.anchor,.type.trait-impl:hover>.anchor,.associatedconstant.trait-impl:hover>.anchor,.associatedtype.trait-impl:hover>.anchor{display:inline-block;position:absolute;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.anchor::before{content:'§';}.docblock a:not(.srclink):not(.test-arrow):hover,.docblock-short a:not(.srclink):not(.test-arrow):hover,.item-info a{text-decoration:underline;}.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;}.item-row{display:table-row;}.item-left,.item-right{display:table-cell;}.item-left{padding-right:1.2rem;}.search-container{position:relative;max-width:960px;}.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%;background-image:url("down-arrow.svg");}.search-container>.top-button{position:absolute;right:0;top:10px;}.search-input{-webkit-appearance:none;-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{padding:3px;margin-bottom:5px;font-size:90%;font-weight:normal;}.stab p{display:inline;}.stab .emoji{font-size:1.2em;}.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;}.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;}h3.variant{font-weight:600;font-size:1.1em;margin-bottom:10px;border-bottom:none;}.sub-variant h4{font-size:1em;font-weight:400;border-bottom:none;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}.toggle-label{display:inline-block;margin-left:4px;margin-top:3px;}.top-doc .docblock>.section-header:first-child{margin-left:15px;}.top-doc .docblock>.section-header:first-child:hover>a:before{left:-10px;}.docblock>.section-header:first-child{margin-top:0;}: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:sticky;top:0;left:0;cursor:pointer;font-weight:bold;font-size:1.2em;border-bottom:1px solid;display:flex;height:40px;justify-content:center;align-items:center;z-index:10;}#source-sidebar{width:100%;z-index:1;overflow:auto;}#source-sidebar>.title{font-size:1.5em;text-align:center;border-bottom:1px solid;margin-bottom:6px;}.theme-picker{position:absolute;left:-34px;top:9px;}.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-content>ul{padding-left:10px;}#main-content>ul>li{list-style:none;}.non-exhaustive{margin-bottom:1em;}div.children{padding-left:27px;display:none;}div.name{cursor:pointer;position:relative;margin-left:16px;}div.files>a{display:block;padding:0 3px;}div.files>a:hover,div.name:hover{background-color:#a14b4b;}div.name.expand+.children{display:block;}div.name::before{content:"\25B6";padding-left:4px;font-size:0.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{list-style:none;}details.rustdoc-toggle>summary::-webkit-details-marker,details.rustdoc-toggle>summary::marker{display:none;}details.rustdoc-toggle>summary.hideme>span{margin-left:9px;}details.rustdoc-toggle>summary::before{content:"";cursor:pointer;width: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:-24px;top:3px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.rustdoc-toggle[open] >summary.hideme{position:absolute;}details.rustdoc-toggle{position:relative;}details.rustdoc-toggle[open] >summary.hideme>span{display:none;}details.undocumented[open] >summary::before,details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{background-image:url("toggle-minus.svg");}details.undocumented>summary::before,details.rustdoc-toggle>summary::before{background-image:url("toggle-plus.svg");}details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{width: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";}@media (min-width:701px){.docblock>.information:first-child>.tooltip{margin-top:16px;}.sidebar.expanded+main .width-limiter .sub-logo-container.rust-logo{display:none;}.rustdoc.source .sidebar{transition:width .5s;}.source .sidebar.expanded{width:300px;}}@media (max-width:700px){body{padding-top:0px;}main{padding-left:15px;padding-top:0px;}.rustdoc{flex-direction:column;}.rustdoc:not(.source)>.sidebar{width:100%;height:45px;min-height:40px;max-height:45px;margin:0;padding:0 15px;position:static;z-index:11;overflow-y:hidden;}.rustdoc.source>.sidebar{position:fixed;top:0;left:0;margin:0;z-index:11;width:0;}.sidebar.mobile{position:sticky !important;top:0;left:0;width:100%;margin-left:0;background-color:rgba(0,0,0,0);}.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;}.rustdoc:not(.source) .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;top: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);margin-left:32px;margin-bottom:10px;}.source nav:not(.sidebar).sub{margin-left:32px;}.content{margin-left:0px;}.source .content{margin-top:10px;}#search{margin-left:0;padding:0;}.anchor{display:none !important;}.theme-picker{z-index:1;}.notable-traits{position:absolute;left:-22px;top:24px;}#titles>button>div.count{float:left;width:100%;}#titles{height:50px;}.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-content>details.rustdoc-toggle>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}#all-types{margin:10px;}.sidebar.expanded #sidebar-toggle{font-size:1.5rem;}.sidebar:not(.expanded) #sidebar-toggle{position:fixed;left:1px;top:100px;width:30px;font-size:1.5rem;text-align:center;padding:0;z-index:10;border-top-right-radius:3px;border-bottom-right-radius:3px;cursor:pointer;font-weight:bold;border:1px solid;border-left:0;}#source-sidebar{z-index:11;}#main-content>.line-numbers{margin-top:0;}.notable-traits .notable-traits-tooltiptext{left:0;top:100%;}#help-button{display:none;}.item-table{display:block;}.item-row{display:flex;flex-flow:column wrap;}.item-left,.item-right{width:100%;}.search-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;}.source .sidebar.expanded{max-width:100vw;width:100vw;}}@media print{nav.sub,.content .out-of-band{display:none;}}@media (max-width:464px){#titles,#titles>button{height:73px;}#main-content>table:not(.table-display) td{word-break:break-word;width:50%;}.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;}.docblock code{overflow-wrap:anywhere;}.sub-container{flex-direction:column;}.sub-logo-container{align-self:center;}.source .sub-logo-container>img{height:35px;width:35px;}.sidebar:not(.expanded) #sidebar-toggle{top:10px;}}.scraped-example-title{font-family:'Fira Sans';}.scraped-example:not(.expanded) .code-wrapper pre.line-numbers{overflow:hidden;max-height:240px;}.scraped-example:not(.expanded) .code-wrapper .example-wrap pre.rust{overflow-y:hidden;max-height:240px;padding-bottom:0;}.scraped-example .code-wrapper .prev{position:absolute;top:0.25em;right:2.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .next{position:absolute;top:0.25em;right:1.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .expand{position:absolute;top:0.25em;right:0.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper:before{content:" ";width:100%;height:5px;position:absolute;z-index:100;top:0;background:linear-gradient(to bottom,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper:after{content:" ";width:100%;height:5px;position:absolute;z-index:100;bottom:0;background:linear-gradient(to top,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper{overflow:hidden;max-height:240px;}.scraped-example .code-wrapper .line-numbers{margin:0;padding:14px 0;}.scraped-example .code-wrapper .line-numbers span{padding:0 14px;}.scraped-example .code-wrapper .example-wrap{flex:1;overflow-x:auto;overflow-y:hidden;margin-bottom:0;}.scraped-example .code-wrapper .example-wrap pre.rust{overflow-x:inherit;width:inherit;overflow-y:hidden;}.scraped-example .example-wrap .rust span.highlight{background:#fcffd6;}.scraped-example .example-wrap .rust span.highlight.focus{background:#f6fdb0;}.more-examples-toggle{margin-top:10px;}.more-examples-toggle summary{color:#999;font-family:'Fira Sans';}.more-scraped-examples{margin-left:25px;display:flex;flex-direction:row;width:calc(100% - 25px);}.more-scraped-examples-inner{width:calc(100% - 20px);}.toggle-line{align-self:stretch;margin-right:10px;margin-top:5px;padding:0 4px;cursor:pointer;}.toggle-line:hover .toggle-line-inner{background:#aaa;}.toggle-line-inner{min-width:2px;background:#ddd;height:100%;}.more-scraped-examples .scraped-example{margin-bottom:20px;}.more-scraped-examples .scraped-example:last-child{margin-bottom:0;}.example-links a{margin-top:20px;font-family:'Fira Sans';}.example-links ul{margin-bottom:0;}
\ No newline at end of file
+ @font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular.woff2") format("woff2"),url("FiraSans-Regular.woff") format('woff');font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium.woff2") format("woff2"),url("FiraSans-Medium.woff") format('woff');font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular.ttf.woff2") format("woff2"),url("SourceSerif4-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It.ttf.woff2") format("woff2"),url("SourceSerif4-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold.ttf.woff2") format("woff2"),url("SourceSerif4-Bold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular.ttf.woff2") format("woff2"),url("SourceCodePro-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It.ttf.woff2") format("woff2"),url("SourceCodePro-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold.ttf.woff2") format("woff2"),url("SourceCodePro-Semibold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic.ttf.woff2") format("woff2"),url("NanumBarunGothic.ttf.woff") format("woff");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}html{content:"";}@media (prefers-color-scheme:light){html{content:"light";}}@media (prefers-color-scheme:dark){html{content:"dark";}}body{font:1rem/1.4 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;-webkit-font-feature-settings:"kern","liga";-moz-font-feature-settings:"kern","liga";font-feature-settings:"kern","liga";}h1{font-size:1.5rem;}h2{font-size:1.4rem;}h3{font-size:1.3rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:20px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}h1.fqn{margin:0;padding:0;}.main-heading{display:flex;border-bottom:1px dashed #DDDDDD;padding-bottom:6px;margin-bottom:15px;padding-left:1px;}.main-heading a:hover{text-decoration:underline;}#toggle-all-docs{text-decoration:none;}h2,.top-doc h3,.top-doc h4,.sidebar .others h3{border-bottom:1px solid;}h3.code-header{font-size:1.1rem;}h4.code-header{font-size:1rem;}h3.code-header,h4.code-header{font-weight:600;border-bottom-style: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;}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,.out-of-band,span.since,#source-sidebar,#sidebar-toggle,details.rustdoc-toggle>summary::before,div.impl-items>div:not(.docblock):not(.item-info),.content ul.crate a.crate,a.srclink,#main-content>ul.docblock>li>a{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}.content ul.crate a.crate{font-size:1rem/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;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.source main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}.source .width-limiter{max-width:unset;}details:not(.rustdoc-toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.1em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;}.docblock.item-decl{margin-left:0;}.item-decl pre{overflow-x:auto;}.source .content pre{padding:20px;}img{max-width:100%;}li{position:relative;}.source .content{max-width:none;overflow:visible;margin-left:0px;}nav.sub{position:relative;font-size:1rem;text-transform:uppercase;}.sub-container{display:flex;flex-direction:row;flex-wrap:nowrap;}.sub-logo-container{display:none;margin-right:20px;}.source .sub-logo-container{display:block;}.source .sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.sidebar{width:200px;overflow-y:scroll;position:sticky;min-width:200px;height:100vh;top:0;left:0;}.rustdoc.source .sidebar{width:50px;min-width:0px;max-width:300px;flex-grow:0;flex-shrink:0;flex-basis:auto;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.source .sidebar>*:not(:first-child){transition:opacity 0.5s,visibility 0.2s;opacity:0;visibility:hidden;}.source .sidebar.expanded{overflow-y:auto;}.source .sidebar.expanded>*{opacity:1;visibility:visible;}*{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;}.hidden{display:none !important;}.logo-container{display:flex;margin-top:10px;margin-bottom:10px;justify-content:center;}.logo-container>img{height:100px;width:100px;}.sidebar .location{border:1px solid;font-size:1.0625rem;margin:30px 10px 20px 10px;text-align:center;word-wrap:break-word;font-weight:inherit;padding:0;}.sidebar .version{font-size:0.9375rem;text-align:center;border-bottom:1px solid;overflow-wrap:break-word;overflow-wrap:anywhere;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:0.875rem;font-weight:300;transition:border 500ms ease-out;}.sidebar-title{border-top:1px solid;border-bottom:1px solid;text-align:center;font-size:1.0625rem;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;}.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:not(.source) .example-wrap>pre.line-numbers{width:auto;overflow-x:visible;}.rustdoc .example-wrap>pre{margin:0;}#search{position:relative;}.search-loading{text-align:center;}#results>table{width:100%;table-layout:fixed;}.content>.example-wrap pre.line-numbers{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.line-numbers span{cursor:pointer;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock-short p{display:inline;}.docblock-short p{overflow:hidden;text-overflow:ellipsis;margin:0;}.docblock>:not(pre)>code,.docblock-short>:not(pre)>code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.3rem;}.top-doc .docblock h3{font-size:1.15rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.1rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.95rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.information){max-width:100%;overflow-x:auto;}.content .out-of-band{flex-grow:0;text-align:right;margin-left:auto;margin-right:0;font-size:1.15rem;padding:0 0 0 12px;font-weight:normal;float:right;}.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;overflow-wrap:break-word;overflow-wrap:anywhere;}.in-band>code,.in-band>.code-header{display:inline-block;}#main-content{position:relative;}#main-content>.since{top:inherit;font-family:"Fira Sans",Arial,sans-serif;}.content table:not(.table-display){border-spacing:0 5px;}.content td{vertical-align:top;}.content td:first-child{padding-right:20px;}.content td p:first-child{margin-top:0;}.content td h1,.content td h2{margin-left:0;font-size:1.1rem;}.content tr:first-child td{border-top:0;}.docblock table{margin:.5em 0;width:calc(100% - 2px);overflow-x:auto;overflow-wrap:normal;display:block;}.docblock table td{padding:.5em;border:1px dashed;}.docblock table th{padding:.5em;text-align:left;border:1px solid;}.fields+table{margin-bottom:1em;}.content .item-list{list-style-type:none;padding:0;}.content .multi-column{-moz-column-count:5;-moz-column-gap:2.5em;-webkit-column-count:5;-webkit-column-gap:2.5em;column-count:5;column-gap:2.5em;}.content .multi-column li{width:100%;display:inline-block;}.content>.methods>.method{font-size:1rem;position:relative;}.content .method .where,.content .fn .where,.content .where.fmt-newline{display:block;font-size:0.8rem;}.content .methods>div:not(.notable-traits):not(.method){margin-left:40px;margin-bottom:15px;}.content .docblock>.impl-items{margin-left:20px;margin-top:-34px;}.content .docblock>.impl-items .table-display{margin:0;}.content .docblock>.impl-items table td{padding:0;}.content .docblock>.impl-items .table-display,.impl-items table td{border:none;}.content .item-info code{font-size:0.81rem;}.content .item-info{position:relative;margin-left:33px;}.sub-variant>div>.item-info{margin-top:initial;}.content .item-info::before{content:'⬑';font-size:1.5625rem;position:absolute;top:-6px;left:-19px;}.content .impl-items .docblock,.content .impl-items .item-info{margin-bottom:.6em;}.content .impl-items>.item-info{margin-left:40px;}.methods>.item-info,.content .impl-items>.item-info{margin-top:-8px;}.impl-items{flex-basis:100%;}#main-content>.item-info{margin-top:0;}nav:not(.sidebar){flex-grow:1;border-bottom:1px solid;padding-bottom:10px;margin-bottom:25px;}.source nav:not(.sidebar).sub{margin-left:32px;}nav.main{padding:20px 0;text-align:center;}nav.main .current{border-top:1px solid;border-bottom:1px solid;}nav.main .separator{border:1px solid;display:inline-block;height:23px;margin:0 20px;}nav.sum{text-align:right;}nav.sub form{display:inline;}a{text-decoration:none;background:transparent;}.small-section-header{display:flex;justify-content:space-between;position:relative;}.small-section-header:hover>.anchor{display:initial;}.in-band:hover>.anchor,.impl:hover>.anchor,.method.trait-impl:hover>.anchor,.type.trait-impl:hover>.anchor,.associatedconstant.trait-impl:hover>.anchor,.associatedtype.trait-impl:hover>.anchor{display:inline-block;position:absolute;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.anchor::before{content:'§';}.docblock a:not(.srclink):not(.test-arrow):hover,.docblock-short a:not(.srclink):not(.test-arrow):hover,.item-info a{text-decoration:underline;}.invisible>.srclink,.method>.code-header+.srclink{position:absolute;top:0;right:0;font-size:1.0625rem;font-weight:normal;}.block a.current.crate{font-weight:500;}.item-table{display:table;}.item-row{display:table-row;}.item-left,.item-right{display:table-cell;}.item-left{padding-right:1.2rem;}.search-container{position:relative;max-width:960px;}.search-container>div{display:inline-flex;width:calc(100% - 63px);}.search-results-title{display:inline;}#search-settings{font-size:1.5rem;font-weight:500;margin-bottom:20px;}#crate-search{min-width:115px;margin-top:5px;margin-left:0.2em;padding-left:0.3em;padding-right:23px;border:0;border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;text-overflow:"";background-repeat:no-repeat;background-color:transparent;background-size:20px;background-position:calc(100% - 1px) 56%;background-image:url("down-arrow.svg");}.search-container>.top-button{position:absolute;right:0;top:10px;}.search-input{-webkit-appearance:none;-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:1.0625rem;transition:border-color 300ms ease;transition:border-radius 300ms ease-in-out;transition:box-shadow 300ms ease-in-out;width:100%;}.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:1.125rem;}#help span.top{text-align:center;display:block;margin:10px 0;border-bottom:1px solid;padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid;}#help dd{margin:5px 35px;}#help .infos{padding-left:0;}#help h1,#help h2{margin-top:0;}#help>div div{width:50%;float:left;padding:0 20px 20px 17px;;}.item-info .stab{display:table;}.stab{padding:3px;margin-bottom:5px;font-size:0.9rem;font-weight:normal;}.stab p{display:inline;}.stab .emoji{font-size:1.2rem;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.module-item .stab,.import-item .stab{border-radius:3px;display:inline-block;font-size:0.8rem;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;}.rightside{padding-left:12px;padding-right:2px;position:initial;}.impl-items .srclink,.impl .srclink,.methods .srclink{font-weight:normal;font-size:1rem;}.impl .srclink{font-size:1.0625rem;}.rightside{float:right;}.has-srclink{font-size:1rem;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;visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.3rem;top:5px;right:5px;z-index:1;}.example-wrap:hover .test-arrow{visibility:visible;}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;}.code-attribute{font-weight:300;}.item-spacer{width:100%;height:12px;}.out-of-band>span.since{position:initial;font-size:1.25rem;margin-right:5px;}h3.variant{font-weight:600;font-size:1.1rem;margin-bottom:10px;border-bottom:none;}.sub-variant h4{font-size:1rem;font-weight:400;border-bottom:none;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}.toggle-label{display:inline-block;margin-left:4px;margin-top:3px;}.top-doc .docblock>.section-header:first-child{margin-left:15px;}.top-doc .docblock>.section-header:first-child:hover>a:before{left:-10px;}.docblock>.section-header:first-child{margin-top:0;}:target>code,:target>.code-header{opacity:1;}:target{padding-right:3px;}.information{position:absolute;left:-25px;margin-top:7px;z-index:1;}.tooltip{position:relative;display:inline-block;cursor:pointer;}.tooltip::after{display:none;text-align:center;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;font-size:1rem;}.tooltip.ignore::after{content:"This example is not tested";}.tooltip.compile_fail::after{content:"This example deliberately fails to compile";}.tooltip.should_panic::after{content:"This example panics";}.tooltip.edition::after{content:"This code runs with edition " attr(data-edition);}.tooltip::before{content:" ";position:absolute;top:50%;left:16px;margin-top:-5px;border-width:5px;border-style:solid;display:none;}.tooltip:hover::before,.tooltip:hover::after{display:inline;}.tooltip.compile_fail,.tooltip.should_panic,.tooltip.ignore{font-weight:bold;font-size:1.25rem;}.notable-traits-tooltip{display:inline-block;cursor:pointer;}.notable-traits:hover .notable-traits-tooltiptext,.notable-traits .notable-traits-tooltiptext.force-tooltip{display:inline-block;}.notable-traits .notable-traits-tooltiptext{display:none;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;z-index:10;font-size:1rem;cursor:default;position:absolute;border:1px solid;}.notable-traits-tooltip::after{content:"\00a0\00a0\00a0";}.notable-traits .notable,.notable-traits .docblock{margin:0;}.notable-traits .notable{margin:0;margin-bottom:13px;font-size:1.1875rem;font-weight:600;}.notable-traits .docblock code.content{margin:0;padding:0;font-size:1.25rem;}pre.rust.rust-example-rendered{position:relative;}pre.rust{tab-size:4;-moz-tab-size:4;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#titles{height:35px;}#titles>button{float:left;width:33.3%;text-align:center;font-size:1.125rem;cursor:pointer;border:0;border-top:2px solid;}#titles>button:not(:last-child){margin-right:1px;width:calc(33.3% - 1px);}#titles>button>div.count{display:inline-block;font-size:1rem;}.notable-traits{cursor:pointer;z-index:2;margin-left:5px;}#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:sticky;top:0;left:0;cursor:pointer;font-weight:bold;font-size:1.2rem;border-bottom:1px solid;display:flex;height:40px;justify-content:center;align-items:center;z-index:10;}#source-sidebar{width:100%;z-index:1;overflow:auto;}#source-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid;margin-bottom:6px;}.theme-picker{position:absolute;left:-34px;top:9px;}.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;font-size:16px;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:16px;padding-top:2px;}#copy-path{background:initial;margin-left:10px;padding:0;padding-left:2px;border:0;}#theme-choices{display:none;position:absolute;left:0;top:28px;border:1px solid;border-radius:3px;z-index:1;cursor:pointer;}#theme-choices>button{border:none;width:100%;padding:4px 8px;text-align:center;background:rgba(0,0,0,0);overflow-wrap:normal;}#theme-choices>button:not(:first-child){border-top:1px solid;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px;border-radius:3px;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:1rem;}.table-display tr td:first-child{padding-right:0;}.table-display tr td:last-child{float:right;}.table-display .out-of-band{position:relative;font-size:1.1875rem;display:block;}#implementors-list>.impl-items .table-display .out-of-band{font-size:1.0625rem;}.table-display td:hover .anchor{display:block;top:2px;left:-5px;}#main-content>ul{padding-left:10px;}#main-content>ul>li{list-style:none;}.non-exhaustive{margin-bottom:1em;}div.children{padding-left:27px;display:none;}div.name{cursor:pointer;position:relative;margin-left:16px;}div.files>a{display:block;padding:0 3px;}div.files>a:hover,div.name:hover{background-color:#a14b4b;}div.name.expand+.children{display:block;}div.name::before{content:"\25B6";padding-left:4px;font-size:0.7rem;position:absolute;left:-16px;top:4px;}div.name.expand::before{transform:rotate(90deg);left:-15px;top:2px;}details.rustdoc-toggle>summary.hideme{cursor:pointer;}details.rustdoc-toggle>summary{list-style:none;}details.rustdoc-toggle>summary::-webkit-details-marker,details.rustdoc-toggle>summary::marker{display:none;}details.rustdoc-toggle>summary.hideme>span{margin-left:9px;}details.rustdoc-toggle>summary::before{content:"";cursor:pointer;width: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:1rem;}details.non-exhaustive{margin-bottom:8px;}details.rustdoc-toggle>summary.hideme::before{position:relative;}details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:3px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.rustdoc-toggle[open] >summary.hideme{position:absolute;}details.rustdoc-toggle{position:relative;}details.rustdoc-toggle[open] >summary.hideme>span{display:none;}details.undocumented[open] >summary::before,details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{background-image:url("toggle-minus.svg");}details.undocumented>summary::before,details.rustdoc-toggle>summary::before{background-image:url("toggle-plus.svg");}details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{width: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";}@media (min-width:701px){.docblock>.information:first-child>.tooltip{margin-top:16px;}.sidebar.expanded+main .width-limiter .sub-logo-container.rust-logo{display:none;}.rustdoc.source .sidebar{transition:width .5s;}.source .sidebar.expanded{width:300px;}}@media (max-width:700px){body{padding-top:0px;}main{padding-left:15px;padding-top:0px;}#theme-picker{display:none;width:0;}.rustdoc{flex-direction:column;}.rustdoc:not(.source)>.sidebar{width:100%;height:45px;min-height:40px;max-height:45px;margin:0;padding:0 15px;position:static;z-index:11;overflow-y:hidden;}.rustdoc.source>.sidebar{position:fixed;top:0;left:0;margin:0;z-index:11;width:0;}.sidebar.mobile{position:sticky !important;top:0;left:0;width:100%;margin-left:0;background-color:rgba(0,0,0,0);}.sidebar>.location{float:right;margin:0px;margin-top:2px;padding:3px 10px 1px 10px;min-height:39px;background:inherit;text-align:left;font-size:1.5rem;}.sidebar .location:empty{padding:0;}.rustdoc:not(.source) .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;top: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%;}.source nav:not(.sidebar).sub{margin-left:32px;}.content{margin-left:0px;}.source .content{margin-top:10px;}#search{margin-left:0;padding:0;}.anchor{display:none !important;}.theme-picker{z-index:1;}.notable-traits{position:absolute;left:-22px;top:24px;}#titles>button>div.count{float:left;width:100%;}#titles{height:50px;}.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:1.3125rem;}#sidebar-filler{position:fixed;left:45px;width:calc(100% - 45px);top:0;height:45px;z-index:-1;border-bottom:1px solid;}#main-content>details.rustdoc-toggle>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}#all-types{margin:10px;}.sidebar.expanded #sidebar-toggle{font-size:1.5rem;}.sidebar:not(.expanded) #sidebar-toggle{position:fixed;left:1px;top:100px;width:30px;font-size:1.5rem;text-align:center;padding:0;z-index:10;border-top-right-radius:3px;border-bottom-right-radius:3px;cursor:pointer;font-weight:bold;border:1px solid;border-left:0;}#source-sidebar{z-index:11;}#main-content>.line-numbers{margin-top:0;}.notable-traits .notable-traits-tooltiptext{left:0;top:100%;}#help-button{display:none;}.item-table{display:block;}.item-row{display:flex;flex-flow:column wrap;}.item-left,.item-right{width:100%;}.search-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;}.source .sidebar.expanded{max-width:100vw;width:100vw;}details.rustdoc-toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before,#main-content>details.rustdoc-toggle:not(.top-doc)>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}}@media print{nav.sub,.content .out-of-band{display:none;}}@media (max-width:464px){#titles,#titles>button{height:73px;}#main-content>table:not(.table-display) td{word-break:break-word;width:50%;}.search-container>div{display:block;width:calc(100% - 37px);}#crate-search{border-radius:4px;border:0;}#theme-picker,#settings-menu{padding:5px;width:31px;height:31px;}#theme-picker{margin-top:-2px;}#settings-menu{top:7px;}.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock table code{overflow-wrap:normal;}.sub-container{flex-direction:column;}.sub-logo-container{align-self:center;}.source .sub-logo-container>img{height:35px;width:35px;}.sidebar:not(.expanded) #sidebar-toggle{top:10px;}}.scraped-example-title{font-family:'Fira Sans';}.scraped-example:not(.expanded) .code-wrapper pre.line-numbers{overflow:hidden;max-height:240px;}.scraped-example:not(.expanded) .code-wrapper .example-wrap pre.rust{overflow-y:hidden;max-height:240px;padding-bottom:0;}.scraped-example .code-wrapper .prev{position:absolute;top:0.25em;right:2.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .next{position:absolute;top:0.25em;right:1.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .expand{position:absolute;top:0.25em;right:0.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper:before{content:" ";width:100%;height:5px;position:absolute;z-index:100;top:0;background:linear-gradient(to bottom,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper:after{content:" ";width:100%;height:5px;position:absolute;z-index:100;bottom:0;background:linear-gradient(to top,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper{overflow:hidden;max-height:240px;}.scraped-example .code-wrapper .line-numbers{margin:0;padding:14px 0;}.scraped-example .code-wrapper .line-numbers span{padding:0 14px;}.scraped-example .code-wrapper .example-wrap{flex:1;overflow-x:auto;overflow-y:hidden;margin-bottom:0;}.scraped-example .code-wrapper .example-wrap pre.rust{overflow-x:inherit;width:inherit;overflow-y:hidden;}.scraped-example .example-wrap .rust span.highlight{background:#fcffd6;}.scraped-example .example-wrap .rust span.highlight.focus{background:#f6fdb0;}.more-examples-toggle{margin-top:10px;}.more-examples-toggle summary{color:#999;font-family:'Fira Sans';}.more-scraped-examples{margin-left:25px;display:flex;flex-direction:row;width:calc(100% - 25px);}.more-scraped-examples-inner{width:calc(100% - 20px);}.toggle-line{align-self:stretch;margin-right:10px;margin-top:5px;padding:0 4px;cursor:pointer;}.toggle-line:hover .toggle-line-inner{background:#aaa;}.toggle-line-inner{min-width:2px;background:#ddd;height:100%;}.more-scraped-examples .scraped-example{margin-bottom:20px;}.more-scraped-examples .scraped-example:last-child{margin-bottom:0;}.example-links a{margin-top:20px;font-family:'Fira Sans';}.example-links ul{margin-bottom:0;}
\ No newline at end of file
diff --git a/search-index.js b/search-index.js
index e631ec56b..ac346d1b4 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]]],[[],["option",4,[["string",3]]]],[[["bool",15]]],[[],["option",4,[["string",3]]]],[[]],[[]],[[]],[[["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]],[[]],[[["option",4,[["string",3]]],["bool",15],["serviceresponse",3]]],[[["option",4,[["string",3]]],["bool",15],["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]],[[["httprequest",3],["payload",4]]],[[]],[[]],[[]],[[]],[[]],[[["usize",15]]],[[["usize",15]]],[[["httprequest",3],["payload",4]]],[[["pin",3],["context",3]],["poll",4]],[[["message",8]],["result",4,[["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]],[[["pin",3],["context",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 RespValue
s.","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,5,3,6,7,1,4,2,5,3,7,2,5,2,5,7,7,7,7,7,7,7,2,5,2,5,6,1,4,4,2,5,5,3,3,6,7,1,4,4,2,2,2,2,2,2,2,2,5,3,3,3,2,5,6,6,5,6,7,1,4,2,5,3,5,5,5,2,7,7,2,6,4,3,6,6,2,5,4,5,3,6,7,1,4,2,5,3,6,7,1,4,2,5,3,7,6,7,1,4,2,5,3,6,7,1,4,2,5,3,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",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",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[]],[[]],[[]],[[["error",4]],["error",4]],[[]],[[["string",3]],["respvalue",4]],[[["string",3]],["respvalue",4]],[[["usize",15]],["respvalue",4]],[[["vec",3,[["u8",15],["global",3]]]],["respvalue",4]],[[]],[[["arc",3,[["str",15]]]],["respvalue",4]],[[],["respvalue",4]],[[["str",15]],["respvalue",4]],[[]],[[["trysenderror",3]],["error",4]],[[["error",3]],["error",4]],[[]],[[["respvalue",4]],["result",4,[["respvalue",4],["error",4]]]],[[],["u64",15]],[[["result",4,[["respvalue",4],["resperror",4]]]]],[[["command",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[["respvalue",4]],["bool",15]],[[["into",8,[["string",3]]]],["redissession",3]],[[]],[[]],[[]],[[],["option",4,[["error",8]]]],[[],["option",4,[["error",8]]]],[[["into",8,[["string",3]]]],["addr",3,[["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_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,11,12,12,12],"n":["0","ContentType","Deserialize","Overflow","Payload","ProtoBuf","ProtoBufConfig","ProtoBufMessage","ProtoBufPayloadError","ProtoBufResponseBuilder","Serialize","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","default","deref","deref_mut","error_response","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_request","into","into","into","into","into_future","limit","limit","new","poll","protobuf","resource_path","respond_to","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_poll","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","0","0","0"],"q":["actix_protobuf","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_protobuf::ProtoBufPayloadError","",""],"d":["","Content type error","Deserialize error","Payload size is bigger than 256k","Payload error","","","","","","Serialize error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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,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",3],["error",3]]]],[[],["path",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]],[[["pin",3],["context",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 RespValue
s.","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,5,3,6,7,1,4,2,5,3,7,2,5,2,5,7,7,7,7,7,7,7,2,5,2,5,6,1,4,4,2,5,5,3,3,6,7,1,4,4,2,2,2,2,2,2,2,2,5,3,3,3,2,5,6,6,5,6,7,1,4,2,5,3,5,5,5,2,7,7,2,6,4,3,6,6,2,5,4,5,3,6,7,1,4,2,5,3,6,7,1,4,2,5,3,7,6,7,1,4,2,5,3,6,7,1,4,2,5,3,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",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",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",4,[["error",3]]]],[[]],[[]],[[]],[[]],[[["error",4]],["error",4]],[[["str",15]],["respvalue",4]],[[["string",3]],["respvalue",4]],[[["vec",3,[["u8",15],["global",3]]]],["respvalue",4]],[[["arc",3,[["str",15]]]],["respvalue",4]],[[["usize",15]],["respvalue",4]],[[],["respvalue",4]],[[["string",3]],["respvalue",4]],[[]],[[]],[[["trysenderror",3]],["error",4]],[[["error",3]],["error",4]],[[]],[[["respvalue",4]],["result",4,[["respvalue",4],["error",4]]]],[[],["u64",15]],[[["command",3]]],[[["result",4,[["respvalue",4],["resperror",4]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[["respvalue",4]],["bool",15]],[[["into",8,[["string",3]]]],["redissession",3]],[[]],[[]],[[]],[[],["option",4,[["error",8]]]],[[],["option",4,[["error",8]]]],[[["into",8,[["string",3]]]],["addr",3,[["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,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],"n":["Changed","CookieSession","Purged","Renewed","Session","SessionStatus","Unchanged","UserSession","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clear","clone","clone","clone_into","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","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,2,3,1,3,1,1,3,2,1,3,3,1,2,3,1,2,2,2,4,3,2,2,3,1,3,3,3,3,3,3,3,2,2,2,2,3,3,2,3,3,1,2,3,1,2,3,1,2,3,1,2,3,1],"f":[null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["cookiesession",3]],[[],["sessionstatus",4]],[[]],[[]],[[],["sessionstatus",4]],[[["into",8,[["string",3]]]],["cookiesession",3]],[[],["ref",3,[["hashmap",3,[["string",3],["string",3]]]]]],[[["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",4,[["deserializeowned",8]]],["error",3]]]],[[["serviceresponse",3]]],[[],["session",3]],[[["bool",15]],["cookiesession",3]],[[],["result",4,[["error",3]]]],[[]],[[]],[[]],[[["bool",15]],["cookiesession",3]],[[["i64",15]],["cookiesession",3]],[[["duration",3]],["cookiesession",3]],[[["into",8,[["string",3]]]],["cookiesession",3]],[[]],[[["into",8,[["string",3]]]],["cookiesession",3]],[[],["cookiesession",3]],[[]],[[["str",15]],["option",4,[["string",3]]]],[[["str",15]],["option",4,[["result",4,[["deserializeowned",8],["string",3]]]]]],[[]],[[["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,"Session"],[3,"CookieSession"],[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_pair","try_into_value","try_into_value","try_into_value","type_id","type_id","type_id","type_id","user_id","vzip","vzip","vzip","vzip","0","0","0","0","0","Challenge","WwwAuthenticate","basic","bearer","borrow","borrow_mut","clone","clone_into","cmp","default","eq","equivalent","fmt","from","get_hash","hash","into","name","ne","parse","partial_cmp","to_bytes","to_owned","try_from","try_into","try_into_pair","try_into_value","type_id","vzip","Basic","borrow","borrow_mut","clone","clone_into","cmp","default","eq","equivalent","fmt","fmt","from","get_hash","hash","into","ne","new","partial_cmp","to_owned","to_string","try_from","try_into","try_into_value","type_id","vzip","with_realm","Bearer","BearerBuilder","Error","InsufficientScope","InvalidRequest","InvalidToken","borrow","borrow","borrow_mut","borrow_mut","build","clone","clone_into","cmp","default","default","eq","equivalent","error","error_description","error_uri","finish","fmt","fmt","fmt","from","from","get_hash","hash","into","into","ne","partial_cmp","realm","scope","to_owned","to_string","try_from","try_from","try_into","try_into","try_into_value","type_id","type_id","vzip","vzip","HttpAuthentication","basic","bearer","borrow","borrow_mut","clone","clone_into","fmt","from","into","new_transform","to_owned","try_from","try_into","type_id","vzip","with_fn"],"q":["actix_web_httpauth","","","actix_web_httpauth::extractors","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::extractors::basic","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::extractors::bearer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::headers","","actix_web_httpauth::headers::authorization","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::headers::authorization::ParseError","","","","actix_web_httpauth::headers::www_authenticate","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::headers::www_authenticate::basic","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::headers::www_authenticate::bearer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::middleware","","","","","","","","","","","","","","","",""],"d":["Type-safe authentication information extractors","Typed HTTP headers","HTTP Authentication middleware.","Trait implemented 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",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",4]]]],[[["into",8,[["cow",4,[["str",15]]]]]],["config",3]],[[["into",8,[["cow",4,[["str",15]]]]]],["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]]],[[["utf8error",3]]],[[["tostrerror",3]]],[[],["authorization",3]],[[["never",15]]],[[]],[[]],[[]],[[],["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",4]]]],[[],["result",4,[["parseerror",4]]]],[[["headervalue",3]],["result",4,[["parseerror",4]]]],[[["headervalue",3]],["result",4,[["parseerror",4]]]],[[["authorization",3]],["option",4,[["ordering",4]]]],[[["basic",3]],["option",4,[["ordering",4]]]],[[["bearer",3]],["option",4,[["ordering",4]]]],[[],["option",4,[["cow",4]]]],[[],["option",4,[["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]],[[],["result",4,[["headervalue",3]]]],[[],["result",4,[["headervalue",3]]]],[[],["result",4,[["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]],[[],["result",4,[["parseerror",4]]]],[[["wwwauthenticate",3]],["option",4,[["ordering",4]]]],[[],["bytes",3]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4,[["headervalue",3]]]],[[],["typeid",3]],[[]],null,[[]],[[]],[[],["basic",3]],[[]],[[["basic",3]],["ordering",4]],[[],["basic",3]],[[["basic",3]],["bool",15]],[[],["bool",15]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",6]],[[]],[[],["u64",15]],[[]],[[]],[[["basic",3]],["bool",15]],[[],["basic",3]],[[["basic",3]],["option",4,[["ordering",4]]]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4,[["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]],["result",4,[["error",3]]]],[[]],[[]],[[],["u64",15]],[[]],[[]],[[]],[[["bearer",3]],["bool",15]],[[["bearer",3]],["option",4,[["ordering",4]]]],[[]],[[]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4,[["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_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_pair","try_into_value","try_into_value","try_into_value","type_id","type_id","type_id","type_id","user_id","vzip","vzip","vzip","vzip","0","0","0","0","0","Challenge","WwwAuthenticate","basic","bearer","borrow","borrow_mut","clone","clone_into","cmp","default","eq","equivalent","fmt","from","get_hash","hash","into","name","ne","parse","partial_cmp","to_bytes","to_owned","try_from","try_into","try_into_pair","try_into_value","type_id","vzip","Basic","borrow","borrow_mut","clone","clone_into","cmp","default","eq","equivalent","fmt","fmt","from","get_hash","hash","into","ne","new","partial_cmp","to_owned","to_string","try_from","try_into","try_into_value","type_id","vzip","with_realm","Bearer","BearerBuilder","Error","InsufficientScope","InvalidRequest","InvalidToken","borrow","borrow","borrow_mut","borrow_mut","build","clone","clone_into","cmp","default","default","eq","equivalent","error","error_description","error_uri","finish","fmt","fmt","fmt","from","from","get_hash","hash","into","into","ne","partial_cmp","realm","scope","to_owned","to_string","try_from","try_from","try_into","try_into","try_into_value","type_id","type_id","vzip","vzip","HttpAuthentication","basic","bearer","borrow","borrow_mut","clone","clone_into","fmt","from","into","new_transform","to_owned","try_from","try_into","type_id","vzip","with_fn"],"q":["actix_web_httpauth","","","actix_web_httpauth::extractors","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::extractors::basic","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::extractors::bearer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::headers","","actix_web_httpauth::headers::authorization","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::headers::authorization::ParseError","","","","actix_web_httpauth::headers::www_authenticate","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::headers::www_authenticate::basic","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::headers::www_authenticate::bearer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::middleware","","","","","","","","","","","","","","","",""],"d":["Type-safe authentication information extractors","Typed HTTP headers","HTTP Authentication middleware.","Trait implemented 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",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",4]]]],[[["into",8,[["cow",4,[["str",15]]]]]],["config",3]],[[["into",8,[["cow",4,[["str",15]]]]]],["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]],[[]],[[["tostrerror",3]]],[[["decodeerror",4]]],[[["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",4]]]],[[],["result",4,[["parseerror",4]]]],[[["headervalue",3]],["result",4,[["parseerror",4]]]],[[["headervalue",3]],["result",4,[["parseerror",4]]]],[[["authorization",3]],["option",4,[["ordering",4]]]],[[["basic",3]],["option",4,[["ordering",4]]]],[[["bearer",3]],["option",4,[["ordering",4]]]],[[],["option",4,[["cow",4]]]],[[],["option",4,[["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]],[[],["result",4,[["headervalue",3]]]],[[],["result",4,[["headervalue",3]]]],[[],["result",4,[["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]],[[],["result",4,[["parseerror",4]]]],[[["wwwauthenticate",3]],["option",4,[["ordering",4]]]],[[],["bytes",3]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4,[["headervalue",3]]]],[[],["typeid",3]],[[]],null,[[]],[[]],[[],["basic",3]],[[]],[[["basic",3]],["ordering",4]],[[],["basic",3]],[[["basic",3]],["bool",15]],[[],["bool",15]],[[["formatter",3]],["result",4,[["error",3]]]],[[["formatter",3]],["result",6]],[[]],[[],["u64",15]],[[]],[[]],[[["basic",3]],["bool",15]],[[],["basic",3]],[[["basic",3]],["option",4,[["ordering",4]]]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4,[["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",4,[["error",3]]]],[[["formatter",3]],["result",6]],[[]],[[]],[[],["u64",15]],[[]],[[]],[[]],[[["bearer",3]],["bool",15]],[[["bearer",3]],["option",4,[["ordering",4]]]],[[]],[[]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4,[["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/search.js b/search.js
index eb6d6f7b9..3aa506077 100644
--- a/search.js
+++ b/search.js
@@ -1 +1,2 @@
-(function(){var itemTypes=["mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","primitive","associatedtype","constant","associatedconstant","union","foreigntype","keyword","existential","attr","derive","traitalias",];var TY_PRIMITIVE=itemTypes.indexOf("primitive");var TY_KEYWORD=itemTypes.indexOf("keyword");function printTab(nb){if(nb===0||nb===1||nb===2){searchState.currentTab=nb}var nb_copy=nb;onEachLazy(document.getElementById("titles").childNodes,function(elem){if(nb_copy===0){addClass(elem,"selected")}else{removeClass(elem,"selected")}nb_copy-=1});onEachLazy(document.getElementById("results").childNodes,function(elem){if(nb===0){addClass(elem,"active")}else{removeClass(elem,"active")}nb-=1})}function removeEmptyStringsFromArray(x){for(var i=0,len=x.length;i1 +all_or_some.rs - source ++ -1 2 3 4 @@ -111,5 +114,5 @@ assert!(AllOrSome::Some(()).is_some()); }
1 +builder.rs - source ++ -1 2 3 4 @@ -1287,5 +1290,5 @@ } }
1 +error.rs - source ++ -1 2 3 4 @@ -101,5 +104,5 @@ } }
1 +inner.rs - source ++ -1 2 3 4 @@ -661,5 +664,5 @@ } }
1 +lib.rs - source ++ -1 2 3 4 @@ -121,5 +124,5 @@ use inner::{Inner, OriginFn}; pub use middleware::CorsMiddleware;
1 +middleware.rs - source ++ -1 2 3 4 @@ -475,5 +478,5 @@ } }
1 +lib.rs - source ++
1 +mod.rs - source ++
1 +mod.rs - source ++
1 +mod.rs - source ++