diff --git a/COPYRIGHT.txt b/COPYRIGHT.txt index 16d79032f..c2629a83f 100644 --- a/COPYRIGHT.txt +++ b/COPYRIGHT.txt @@ -2,7 +2,8 @@ These documentation pages include resources by third parties. This copyright file applies only to those resources. The following third party resources are included, and carry their own copyright notices and license terms: -* Fira Sans (FiraSans-Regular.woff, FiraSans-Medium.woff): +* Fira Sans (FiraSans-Regular.woff2, FiraSans-Medium.woff2, + FiraSans-Regular.woff, FiraSans-Medium.woff): Copyright (c) 2014, Mozilla Foundation https://mozilla.org/ with Reserved Font Name Fira Sans. @@ -23,8 +24,10 @@ included, and carry their own copyright notices and license terms: Copyright (c) Nicolas Gallagher and Jonathan Neal. Licensed under the MIT license (see LICENSE-MIT.txt). -* Source Code Pro (SourceCodePro-Regular.ttf.woff, - SourceCodePro-Semibold.ttf.woff, SourceCodePro-It.ttf.woff): +* Source Code Pro (SourceCodePro-Regular.ttf.woff2, + SourceCodePro-Semibold.ttf.woff2, SourceCodePro-It.ttf.woff2, + SourceCodePro-Regular.ttf.woff, SourceCodePro-Semibold.ttf.woff, + SourceCodePro-It.ttf.woff): Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark @@ -33,8 +36,9 @@ included, and carry their own copyright notices and license terms: Licensed under the SIL Open Font License, Version 1.1. See SourceCodePro-LICENSE.txt. -* Source Serif 4 (SourceSerif4-Regular.ttf.woff, SourceSerif4-Bold.ttf.woff, - SourceSerif4-It.ttf.woff): +* Source Serif 4 (SourceSerif4-Regular.ttf.woff2, SourceSerif4-Bold.ttf.woff2, + SourceSerif4-It.ttf.woff2, SourceSerif4-Regular.ttf.woff, + SourceSerif4-Bold.ttf.woff, SourceSerif4-It.ttf.woff): Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United diff --git a/FiraSans-LICENSE.txt b/FiraSans-LICENSE.txt index d444ea92b..ff9afab06 100644 --- a/FiraSans-LICENSE.txt +++ b/FiraSans-LICENSE.txt @@ -1,5 +1,5 @@ Digitized data copyright (c) 2012-2015, The Mozilla Foundation and Telefonica S.A. -with Reserved Font Name < Fira >, +with Reserved Font Name < Fira >, This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: @@ -19,7 +19,7 @@ with others. The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, +fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The diff --git a/SourceCodePro-It.ttf.woff2 b/SourceCodePro-It.ttf.woff2 new file mode 100644 index 000000000..462c34efc Binary files /dev/null and b/SourceCodePro-It.ttf.woff2 differ diff --git a/SourceCodePro-Regular.ttf.woff2 b/SourceCodePro-Regular.ttf.woff2 new file mode 100644 index 000000000..10b558e0b Binary files /dev/null and b/SourceCodePro-Regular.ttf.woff2 differ diff --git a/SourceCodePro-Semibold.ttf.woff2 b/SourceCodePro-Semibold.ttf.woff2 new file mode 100644 index 000000000..5ec64eef0 Binary files /dev/null and b/SourceCodePro-Semibold.ttf.woff2 differ diff --git a/SourceSerif4-Bold.ttf.woff2 b/SourceSerif4-Bold.ttf.woff2 new file mode 100644 index 000000000..db57d2145 Binary files /dev/null and b/SourceSerif4-Bold.ttf.woff2 differ diff --git a/SourceSerif4-It.ttf.woff2 b/SourceSerif4-It.ttf.woff2 new file mode 100644 index 000000000..1cbc021a3 Binary files /dev/null and b/SourceSerif4-It.ttf.woff2 differ diff --git a/SourceSerif4-Regular.ttf.woff2 b/SourceSerif4-Regular.ttf.woff2 new file mode 100644 index 000000000..2db73fe2b Binary files /dev/null and b/SourceSerif4-Regular.ttf.woff2 differ diff --git a/actix_cors/all.html b/actix_cors/all.html index e42d95868..20f77a607 100644 --- a/actix_cors/all.html +++ b/actix_cors/all.html @@ -1,5 +1,5 @@ -
Redirecting to ../../actix_cors/struct.Cors.html...
diff --git a/actix_cors/enum.CorsError.html b/actix_cors/enum.CorsError.html index 55255d835..1295737b2 100644 --- a/actix_cors/enum.CorsError.html +++ b/actix_cors/enum.CorsError.html @@ -1,5 +1,5 @@ -impl RefUnwindSafe for CorsError
impl UnwindSafe for CorsError
Mutably borrows from an owned value. Read more
+Instruments this type with the provided Span
, returning an
+Instrumented
wrapper. Read more
type Output = T
Should always be Self
pub fn vzip(self) -> V
Redirecting to ../../actix_cors/enum.CorsError.html...
diff --git a/actix_cors/index.html b/actix_cors/index.html index 446ae1685..b0a416f52 100644 --- a/actix_cors/index.html +++ b/actix_cors/index.html @@ -1,7 +1,6 @@ -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()
,
+Cors
builder can be used as an argument for Actix Web’s App::wrap()
,
Scope::wrap()
, or Resource::wrap()
methods.
This CORS middleware automatically handles OPTIONS
preflight requests.
Cors | Builder for CORS middleware. - |
CorsError | Errors that can occur when processing CORS guarded requests. - |
Builder for CORS middleware.
+Errors that can occur when processing CORS guarded requests.
+Builder for CORS middleware.
-To construct a CORS middleware, call Cors::default()
to create a blank, restrictive builder.
+
pub struct Cors { /* fields omitted */ }
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
+
The alternative Cors::permissive()
constructor is available for local development, allowing
all origins and headers, etc. The permissive constructor should not be used in production.
Errors surface in the middleware initialization phase. This means that, if you have logs enabled @@ -22,12 +21,12 @@ server will fail to start up or serve requests.
.max_age(3600); // `cors` can now be used in `App::wrap`.impl Cors
[src]pub fn permissive() -> Self
[src]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.
-pub fn allow_any_origin(self) -> Cors
[src]Resets allowed origin list to a state where any origin is accepted.
-See Cors::allowed_origin
for more info on allowed origins.
pub fn allowed_origin(self, origin: &str) -> Cors
[src]Add an origin that is allowed to make requests.
+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.
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.*
). Cors::send_wildcard
should be used instead.pub fn allowed_origin_fn<F>(self, f: F) -> Cors where
F: Fn(&HeaderValue, &RequestHead) -> bool + 'static,
[src]Determinate allowed origins by processing requests which didn’t match any origins specified +
pub fn allowed_origin_fn<F>(self, f: F) -> Cors where
F: Fn(&HeaderValue, &RequestHead) -> bool + 'static,
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.
pub fn allow_any_method(self) -> Cors
[src]Resets allowed methods list to all methods.
-See Cors::allowed_methods
for more info on allowed methods.
pub fn allowed_methods<U, M>(self, methods: U) -> Cors where
U: IntoIterator<Item = M>,
M: TryInto<Method>,
<M as TryInto<Method>>::Error: Into<HttpError>,
[src]Set a list of methods which allowed origins can perform.
+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.
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]
pub fn allow_any_header(self) -> Cors
[src]Resets allowed request header list to a state where any header is accepted.
-See Cors::allowed_headers
for more info on allowed request headers.
pub fn allowed_header<H>(self, header: H) -> Cors where
H: TryInto<HeaderName>,
<H as TryInto<HeaderName>>::Error: Into<HttpError>,
[src]Add an allowed request header.
-See Cors::allowed_headers
for more info on allowed request headers.
pub fn allowed_headers<U, H>(self, headers: U) -> Cors where
U: IntoIterator<Item = H>,
H: TryInto<HeaderName>,
<H as TryInto<HeaderName>>::Error: Into<HttpError>,
[src]Set a list of request header field names which can be used when this resource is accessed by +
Resets allowed request header list to a state where any header is accepted.
+See Cors::allowed_headers
for more info on allowed request headers.
pub fn allowed_header<H>(self, header: H) -> Cors where
H: TryInto<HeaderName>,
<H as TryInto<HeaderName>>::Error: Into<HttpError>,
Add an allowed request header.
+See Cors::allowed_headers
for more info on allowed request headers.
pub fn allowed_headers<U, H>(self, headers: U) -> Cors where
U: IntoIterator<Item = H>,
H: TryInto<HeaderName>,
<H as TryInto<HeaderName>>::Error: Into<HttpError>,
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
.
pub fn expose_any_header(self) -> Cors
[src]Resets exposed response header list to a state where any header is accepted.
-See Cors::expose_headers
for more info on exposed response headers.
pub fn expose_headers<U, H>(self, headers: U) -> Cors where
U: IntoIterator<Item = H>,
H: TryInto<HeaderName>,
<H as TryInto<HeaderName>>::Error: Into<HttpError>,
[src]Set a list of headers which are safe to expose to the API of a CORS API specification. +
Resets exposed response header list to a state where any header is accepted.
+See Cors::expose_headers
for more info on exposed response headers.
pub fn expose_headers<U, H>(self, headers: U) -> Cors where
U: IntoIterator<Item = H>,
H: TryInto<HeaderName>,
<H as TryInto<HeaderName>>::Error: Into<HttpError>,
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.
-pub fn max_age(self, max_age: impl Into<Option<usize>>) -> Cors
[src]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.
-pub fn send_wildcard(self) -> Cors
[src]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
.
pub fn supports_credentials(self) -> Cors
[src]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.
pub fn disable_vary_header(self) -> Cors
[src]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.
pub fn disable_preflight(self) -> Cors
[src]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.
-impl Debug for Cors
[src]impl Default for Cors
[src]impl<S, B> Transform<S, ServiceRequest> for Cors where
S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error>,
S::Future: 'static,
B: 'static,
[src]type Response = ServiceResponse<B>
Responses produced by the service.
-type Error = Error
Errors produced by the service.
-type InitError = ()
Errors produced while building a transform service.
-type Transform = CorsMiddleware<S>
The TransformService
value created by this factory
type Future = Ready<Result<Self::Transform, Self::InitError>>
The future response value.
-fn new_transform(&self, service: S) -> Self::Future
[src]impl !RefUnwindSafe for Cors
impl !Send for Cors
impl !Sync for Cors
impl Unpin for Cors
impl !UnwindSafe for Cors
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
type Response = ServiceResponse
Responses produced by the service.
+type Error = Error
Errors produced by the service.
+type Transform = CorsMiddleware<S>
The TransformService
value created by this factory
type Future = Ready<Result<Self::Transform, Self::InitError>>
The future response value.
+Creates and returns a new Transform component, asynchronously
+impl !RefUnwindSafe for Cors
impl !UnwindSafe for Cors
Redirecting to ../../actix_identity/struct.CookieIdentityPolicy.html...
diff --git a/actix_identity/identity/struct.Identity.html b/actix_identity/identity/struct.Identity.html index e1023e2db..f2b554050 100644 --- a/actix_identity/identity/struct.Identity.html +++ b/actix_identity/identity/struct.Identity.html @@ -2,6 +2,7 @@ +Redirecting to ../../actix_identity/struct.Identity.html...
diff --git a/actix_identity/index.html b/actix_identity/index.html index 477f49eeb..cb300a073 100644 --- a/actix_identity/index.html +++ b/actix_identity/index.html @@ -1,11 +1,8 @@ -Opinionated request identity service for Actix Web apps.
-IdentityService
middleware can be used with different policies types to store
+
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.
To access current request identity, use the Identity
extractor.
A cookie based policy is provided. CookieIdentityPolicy
uses cookies as identity storage.
To access current request identity, use the Identity
extractor.
use actix_web::*; @@ -42,12 +39,13 @@ identity information. // wrap policy into middleware identity middleware .wrap(IdentityService::new(policy)) .service(services![index, login, logout]);
CookieIdentityPolicy | Use cookies for request identity storage. - |
Identity | The extractor type to obtain your identity from a request. - |
IdentityService | Request identity middleware - |
IdentityPolicy | Identity policy. - |
RequestIdentity | Helper trait that allows to get Identity. - |
Use cookies for request identity storage.
+The extractor type to obtain your identity from a request.
+Request identity middleware
+Redirecting to ../../actix_identity/struct.IdentityService.html...
diff --git a/actix_identity/struct.CookieIdentityPolicy.html b/actix_identity/struct.CookieIdentityPolicy.html index 7739bad5a..be36edeab 100644 --- a/actix_identity/struct.CookieIdentityPolicy.html +++ b/actix_identity/struct.CookieIdentityPolicy.html @@ -1,7 +1,4 @@ -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.
@@ -18,49 +15,50 @@ let app = App::new() // wrap policy into identity middleware .wrap(IdentityService::new(policy));
impl CookieIdentityPolicy
[src]pub fn new(key: &[u8]) -> CookieIdentityPolicy
[src]Create new CookieIdentityPolicy
instance.
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..
pub fn name(self, value: impl Into<String>) -> CookieIdentityPolicy
[src]Sets the name of issued cookies.
-pub fn path(self, value: impl Into<String>) -> CookieIdentityPolicy
[src]Sets the Path
attribute of issued cookies.
pub fn domain(self, value: impl Into<String>) -> CookieIdentityPolicy
[src]Sets the Domain
attribute of issued cookies.
pub fn secure(self, value: bool) -> CookieIdentityPolicy
[src]Sets the Secure
attribute of issued cookies.
pub fn max_age(self, value: Duration) -> CookieIdentityPolicy
[src]Sets the Max-Age
attribute of issued cookies.
pub fn max_age_secs(self, seconds: i64) -> CookieIdentityPolicy
[src]Sets the Max-Age
attribute of issued cookies with given number of seconds.
pub fn http_only(self, http_only: bool) -> Self
[src]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.
pub fn same_site(self, same_site: SameSite) -> Self
[src]Sets the SameSite
attribute of issued cookies.
Sets the SameSite
attribute of issued cookies.
By default, the SameSite
attribute is omitted from issued cookies.
pub fn visit_deadline(self, deadline: Duration) -> CookieIdentityPolicy
[src]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.
-pub fn login_deadline(self, deadline: Duration) -> CookieIdentityPolicy
[src]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
+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.
-impl IdentityPolicy for CookieIdentityPolicy
[src]type Future = Ready<Result<Option<String>, Error>>
The return type of the middleware
-type ResponseFuture = Ready<Result<(), Error>>
The return type of the middleware
-fn from_request(&self, req: &mut ServiceRequest) -> Self::Future
[src]fn to_response<B>(
&self,
id: Option<String>,
changed: bool,
res: &mut ServiceResponse<B>
) -> Self::ResponseFuture
[src]impl !RefUnwindSafe for CookieIdentityPolicy
impl !Send for CookieIdentityPolicy
impl !Sync for CookieIdentityPolicy
impl Unpin for CookieIdentityPolicy
impl UnwindSafe for CookieIdentityPolicy
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
type ResponseFuture = Ready<Result<(), Error>>
The return type of the middleware
+Parse the session from request and load data from a service identity.
+fn to_response<B>(
&self,
id: Option<String>,
changed: bool,
res: &mut ServiceResponse<B>
) -> Self::ResponseFuture
Write changes to response
+impl !RefUnwindSafe for CookieIdentityPolicy
impl !Send for CookieIdentityPolicy
impl !Sync for CookieIdentityPolicy
impl Unpin for CookieIdentityPolicy
impl UnwindSafe for CookieIdentityPolicy
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::*; @@ -32,13 +29,13 @@ HttpResponse::Ok() }
impl Identity
[src]pub fn identity(&self) -> Option<String>
[src]Return the claimed identity of the user associated request or None
if no identity can be
+
Extractor implementation for Identity type.
use actix_identity::Identity; @@ -52,29 +49,30 @@ found associated with the request. "Welcome Anonymous!".to_owned() } }
type Config = ()
Configuration for this extractor.
-type Error = Error
The associated error which can be returned.
-type Future = Ready<Result<Identity, Error>>
Future that resolves to a Self.
-fn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future
[src]pub fn extract(req: &HttpRequest) -> Self::Future
pub fn configure<F>(f: F) -> Self::Config where
F: FnOnce(Self::Config) -> Self::Config,
impl !RefUnwindSafe for Identity
impl !Send for Identity
impl !Sync for Identity
impl Unpin for Identity
impl !UnwindSafe for Identity
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
The resulting type after obtaining ownership.
-pub fn to_owned(&self) -> T
[src]pub fn clone_into(&self, target: &mut T)
[src]impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl !RefUnwindSafe for Identity
impl !UnwindSafe for Identity
Mutably borrows from an owned value. Read more
+Instruments this type with the provided Span
, returning an
+Instrumented
wrapper. Read more
type Output = T
Should always be Self
pub fn vzip(self) -> V
Request identity middleware
+pub struct IdentityService<T> { /* fields omitted */ }
Request identity middleware
use actix_web::App; @@ -15,26 +12,27 @@ let app = App::new() // wrap policy into identity middleware .wrap(IdentityService::new(policy));
impl<T> IdentityService<T>
[src]impl<S, T, B> Transform<S, ServiceRequest> for IdentityService<T> where
S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static,
S::Future: 'static,
T: IdentityPolicy,
B: 'static,
[src]type Response = ServiceResponse<B>
Responses produced by the service.
-type Error = Error
Errors produced by the service.
-type InitError = ()
Errors produced while building a transform service.
-type Transform = IdentityServiceMiddleware<S, T>
The TransformService
value created by this factory
type Future = Ready<Result<Self::Transform, Self::InitError>>
The future response value.
-fn new_transform(&self, service: S) -> Self::Future
[src]impl<T> !RefUnwindSafe for IdentityService<T>
impl<T> !Send for IdentityService<T>
impl<T> !Sync for IdentityService<T>
impl<T> Unpin for IdentityService<T>
impl<T> UnwindSafe for IdentityService<T> where
T: RefUnwindSafe,
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<S, T, B> Transform<S, ServiceRequest> for IdentityService<T> where
S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static,
S::Future: 'static,
T: IdentityPolicy,
B: MessageBody + 'static,
B::Error: StdError,
type Response = ServiceResponse
Responses produced by the service.
+type Error = Error
Errors produced by the service.
+type Transform = IdentityServiceMiddleware<S, T>
The TransformService
value created by this factory
type Future = Ready<Result<Self::Transform, Self::InitError>>
The future response value.
+Creates and returns a new Transform component, asynchronously
+impl<T> !RefUnwindSafe for IdentityService<T>
impl<T> !Send for IdentityService<T>
impl<T> !Sync for IdentityService<T>
impl<T> Unpin for IdentityService<T>
impl<T> UnwindSafe for IdentityService<T> where
T: RefUnwindSafe,
Identity policy.
+type ResponseFuture: Future<Output = Result<(), Error>>
The return type of the middleware
+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
+fn get_identity(&self) -> Option<String>
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
+impl !RefUnwindSafe for ProtoBufPayloadError
impl Send for ProtoBufPayloadError
impl Sync for ProtoBufPayloadError
impl Unpin for ProtoBufPayloadError
impl !UnwindSafe for ProtoBufPayloadError
ProtoBuf | |
ProtoBufConfig | |
ProtoBufMessage |
ProtoBufPayloadError |
ProtoBufResponseBuilder |
impl<T: Message> Debug for ProtoBuf<T> where
T: Debug,
[src]impl<T: Message> Deref for ProtoBuf<T>
[src]impl<T: Message> DerefMut for ProtoBuf<T>
[src]impl<T: Message> Display for ProtoBuf<T> where
T: Display,
[src]impl<T> FromRequest for ProtoBuf<T> where
T: Message + Default + 'static,
[src]type Config = ProtoBufConfig
Configuration for this extractor.
-type Error = Error
The associated error which can be returned.
-type Future = LocalBoxFuture<'static, Result<Self, Error>>
Future that resolves to a Self.
-fn from_request(req: &HttpRequest, payload: &mut Payload) -> Self::Future
[src]pub fn extract(req: &HttpRequest) -> Self::Future
pub fn configure<F>(f: F) -> Self::Config where
F: FnOnce(Self::Config) -> Self::Config,
impl<T: Message + Default> Responder for ProtoBuf<T>
[src]fn respond_to(self, _: &HttpRequest) -> HttpResponse
[src]pub fn with_status(self, status: StatusCode) -> CustomResponder<Self>
pub fn with_header<H>(self, header: H) -> CustomResponder<Self> where
H: IntoHeaderPair,
impl<T> RefUnwindSafe for ProtoBuf<T> where
T: RefUnwindSafe,
impl<T> Send for ProtoBuf<T>
impl<T> Sync for ProtoBuf<T>
impl<T> Unpin for ProtoBuf<T> where
T: Unpin,
impl<T> UnwindSafe for ProtoBuf<T> where
T: UnwindSafe,
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToString for T where
T: Display + ?Sized,
[src]impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
pub struct ProtoBuf<T: Message>(pub T);
type Config = ProtoBufConfig
Configuration for this extractor.
+type Error = Error
The associated error which can be returned.
+Create a Self from request parts asynchronously.
+Convert self to HttpResponse
.
fn with_status(self, status: StatusCode) -> CustomResponder<Self>
Override a status code for a Responder. Read more
+fn with_header<H>(self, header: H) -> CustomResponder<Self> where
H: IntoHeaderPair,
Insert header to the final response. Read more
+impl<T> RefUnwindSafe for ProtoBuf<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for ProtoBuf<T> where
T: UnwindSafe,
impl ProtoBufConfig
[src]pub fn limit(&mut self, limit: usize) -> &mut Self
[src]Change max size of payload. By default max size is 256Kb
-impl Default for ProtoBufConfig
[src]impl RefUnwindSafe for ProtoBufConfig
impl Send for ProtoBufConfig
impl Sync for ProtoBufConfig
impl Unpin for ProtoBufConfig
impl UnwindSafe for ProtoBufConfig
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
pub struct ProtoBufConfig { /* fields omitted */ }
impl RefUnwindSafe for ProtoBufConfig
impl Send for ProtoBufConfig
impl Sync for ProtoBufConfig
impl Unpin for ProtoBufConfig
impl UnwindSafe for ProtoBufConfig
impl<T: Message + Default> ProtoBufMessage<T>
[src]pub fn new(req: &HttpRequest, payload: &mut Payload) -> Self
[src]Create ProtoBufMessage
for request.
pub fn limit(self, limit: usize) -> Self
[src]Change max size of payload. By default max size is 256Kb
-fn status_code(&self) -> StatusCode
Returns appropriate status code for error. Read more
+fn error_response(&self) -> HttpResponse<AnyBody>
Creates full response for error. Read more
+impl !RefUnwindSafe for Error
impl !UnwindSafe for Error
impl !RefUnwindSafe for Error
impl !UnwindSafe for Error
impl RefUnwindSafe for RespValue
impl UnwindSafe for RespValue
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
+Instrumented
wrapper. Read more
type Output = T
Should always be Self
pub fn vzip(self) -> V
impl RefUnwindSafe for SameSite
impl UnwindSafe for SameSite
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
+Instrumented
wrapper. Read more
type Output = T
Should always be Self
pub fn vzip(self) -> V
Redis integration for Actix and session store for Actix Web.
-Command | Command for send data to Redis - |
RedisActor | Redis communication actor - |
RedisSession | Use redis as session storage. - |
Error | General purpose actix redis error - |
RespError | |
RespValue | A single RESP value, this owns the data that is read/to-be written to Redis. - |
SameSite | The |
Redis integration for Actix and session store for Actix Web.
+Command for send data to Redis
+Redis communication actor
+Use redis as session storage.
+Redirecting to ../../actix_redis/struct.Command.html...
diff --git a/actix_redis/redis/struct.RedisActor.html b/actix_redis/redis/struct.RedisActor.html index ee86750c4..e2d9e4572 100644 --- a/actix_redis/redis/struct.RedisActor.html +++ b/actix_redis/redis/struct.RedisActor.html @@ -2,6 +2,7 @@ +Redirecting to ../../actix_redis/struct.RedisActor.html...
diff --git a/actix_redis/session/struct.RedisSession.html b/actix_redis/session/struct.RedisSession.html index 069093cae..ff6040536 100644 --- a/actix_redis/session/struct.RedisSession.html +++ b/actix_redis/session/struct.RedisSession.html @@ -2,6 +2,7 @@ +Redirecting to ../../actix_redis/struct.RedisSession.html...
diff --git a/actix_redis/struct.Command.html b/actix_redis/struct.Command.html index bd86242ed..ba3738852 100644 --- a/actix_redis/struct.Command.html +++ b/actix_redis/struct.Command.html @@ -1,25 +1,23 @@ -Command for send data to Redis
-impl Debug for Command
[src]impl Handler<Command> for RedisActor
[src]type Result = ResponseFuture<Result<RespValue, Error>>
The type of value that this handler will return. Read more
-fn handle(&mut self, msg: Command, _: &mut Self::Context) -> Self::Result
[src]impl Message for Command
[src]type Result = Result<RespValue, Error>
The type of value that this message will resolved with if it is +
pub struct Command(pub RespValue);
Command for send data to Redis
+impl RefUnwindSafe for Command
impl Send for Command
impl Sync for Command
impl Unpin for Command
impl UnwindSafe for Command
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl RefUnwindSafe for Command
impl UnwindSafe for Command
Redis communication actor
-impl RedisActor
[src]pub fn start<S: Into<String>>(addr: S) -> Addr<RedisActor>
[src]Start new Supervisor
with RedisActor
.
impl Actor for RedisActor
[src]type Context = Context<Self>
Actor execution context type
-fn started(&mut self, ctx: &mut Context<Self>)
[src]pub fn stopping(&mut self, ctx: &mut Self::Context) -> Running
pub fn stopped(&mut self, ctx: &mut Self::Context)
pub fn start(self) -> Addr<Self> where
Self: Actor<Context = Context<Self>>,
pub fn start_default() -> Addr<Self> where
Self: Actor<Context = Context<Self>> + Default,
fn start_in_arbiter<F>(wrk: &ArbiterHandle, f: F) -> Addr<Self> where
Self: Actor<Context = Context<Self>>,
F: FnOnce(&mut Context<Self>) -> Self + Send + 'static,
Start new actor in arbiter’s thread.
+Called for every message emitted by the stream.
+fn add_stream<S>(stream: S, ctx: &mut Self::Context) -> SpawnHandle where
Self: StreamHandler<<S as Stream>::Item>,
S: Stream + 'static,
Self::Context: AsyncContext<Self>,
Register a Stream to the actor context.
+Called when the supervisor restarts a failed actor.
+impl !RefUnwindSafe for RedisActor
impl !Send for RedisActor
impl !Sync for RedisActor
impl Unpin for RedisActor
impl !UnwindSafe for RedisActor
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.
-impl RedisSession
[src]pub fn new<S: Into<String>>(addr: S, key: &[u8]) -> RedisSession
[src]Create new redis session backend
+Create new redis session backend
addr
- address of the redis serverpub fn ttl(self, ttl: u32) -> Self
[src]Set time to live in seconds for session value.
-pub fn cookie_name(self, name: &str) -> Self
[src]Set custom cookie name for session ID.
-pub fn cookie_path(self, path: &str) -> Self
[src]Set custom cookie path.
-pub fn cookie_domain(self, domain: &str) -> Self
[src]Set custom cookie domain.
-pub fn cookie_secure(self, secure: bool) -> Self
[src]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.
-pub fn cookie_max_age(self, max_age: impl Into<Option<Duration>>) -> Self
[src]Set custom cookie max-age.
+Set custom cookie max-age.
Use None
for session-only cookies.
pub fn cookie_same_site(self, same_site: SameSite) -> Self
[src]Set custom cookie SameSite
attribute.
Set custom cookie SameSite
attribute.
By default, the attribute is omitted.
-pub fn cookie_http_only(self, http_only: bool) -> Self
[src]Set custom cookie HttpOnly
policy.
impl<S, B> Transform<S, ServiceRequest> for RedisSession where
S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static,
S::Future: 'static,
B: 'static,
[src]type Response = ServiceResponse<B>
Responses produced by the service.
-type Error = S::Error
Errors produced by the service.
-type Transform = RedisSessionMiddleware<S>
The TransformService
value created by this factory
type InitError = ()
Errors produced while building a transform service.
-type Future = LocalBoxFuture<'static, Result<Self::Transform, Self::InitError>>
The future response value.
-fn new_transform(&self, service: S) -> Self::Future
[src]impl !RefUnwindSafe for RedisSession
impl !Send for RedisSession
impl !Sync for RedisSession
impl Unpin for RedisSession
impl !UnwindSafe for RedisSession
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<S, B> Transform<S, ServiceRequest> for RedisSession where
S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static,
S::Future: 'static,
B: 'static,
type Response = ServiceResponse<B>
Responses produced by the service.
+type Error = S::Error
Errors produced by the service.
+type Transform = RedisSessionMiddleware<S>
The TransformService
value created by this factory
The future response value.
+Creates and returns a new Transform component, asynchronously
+impl !RefUnwindSafe for RedisSession
impl !Send for RedisSession
impl !Sync for RedisSession
impl Unpin for RedisSession
impl !UnwindSafe for RedisSession
Redirecting to ../../actix_session/struct.CookieSession.html...
diff --git a/actix_session/enum.SessionStatus.html b/actix_session/enum.SessionStatus.html index 21bebbd60..d3df888f5 100644 --- a/actix_session/enum.SessionStatus.html +++ b/actix_session/enum.SessionStatus.html @@ -1,15 +1,10 @@ -impl RefUnwindSafe for SessionStatus
impl Send for SessionStatus
impl Sync for SessionStatus
impl Unpin for SessionStatus
impl UnwindSafe for SessionStatus
Mutably borrows from an owned value. Read more
+Instruments this type with the provided Span
, returning an
+Instrumented
wrapper. Read more
type Output = T
Should always be Self
pub fn vzip(self) -> V
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. Other backend implementations can be built to use persistent or key-value stores, for example.
-In general, some session middleware, such as a CookieSession
is initialized and applied.
-To access session data, the Session
extractor must be used. This extractor allows reading
+
In general, some session middleware, such as a CookieSession
is initialized and applied.
+To access session data, the Session
extractor must be used. This extractor allows reading
modifying session data.
@@ -37,12 +34,13 @@ modifying session data. .run() .await }
CookieSession | Use cookies for session storage. - |
Session | The high-level interface you use to modify session data. - |
SessionStatus | Status of a |
UserSession | Extraction of a |
Use cookies for session storage.
+The high-level interface you use to modify session data.
+Status of a Session
.
Extraction of a Session
object.
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
@@ -32,44 +29,45 @@ cause troubles when reading cookie, if they are not properly percent encoded.
impl CookieSession
[src]pub fn signed(key: &[u8]) -> CookieSession
[src]Construct new signed CookieSession
instance.
Construct new signed CookieSession
instance.
Panics if key length is less than 32 bytes.
-pub fn private(key: &[u8]) -> CookieSession
[src]Construct new private CookieSession
instance.
Construct new private CookieSession
instance.
Panics if key length is less than 32 bytes.
-pub fn path<S: Into<String>>(self, value: S) -> CookieSession
[src]Sets the path
field in the session cookie being built.
pub fn name<S: Into<String>>(self, value: S) -> CookieSession
[src]Sets the name
field in the session cookie being built.
pub fn domain<S: Into<String>>(self, value: S) -> CookieSession
[src]Sets the domain
field in the session cookie being built.
pub fn lazy(self, value: bool) -> CookieSession
[src]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.
-pub fn secure(self, value: bool) -> CookieSession
[src]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
pub fn http_only(self, value: bool) -> CookieSession
[src]Sets the http_only
field in the session cookie being built.
pub fn same_site(self, value: SameSite) -> CookieSession
[src]Sets the same_site
field in the session cookie being built.
pub fn max_age(self, seconds: i64) -> CookieSession
[src]Sets the max-age
field in the session cookie being built.
pub fn max_age_time(self, value: Duration) -> CookieSession
[src]Sets the max-age
field in the session cookie being built.
pub fn expires_in(self, seconds: i64) -> CookieSession
[src]Sets the expires
field in the session cookie being built.
pub fn expires_in_time(self, value: Duration) -> CookieSession
[src]Sets the expires
field in the session cookie being built.
impl<S, B: 'static> Transform<S, ServiceRequest> for CookieSession where
S: Service<ServiceRequest, Response = ServiceResponse<B>>,
S::Future: 'static,
S::Error: 'static,
[src]type Response = ServiceResponse<B>
Responses produced by the service.
-type Error = S::Error
Errors produced by the service.
-type InitError = ()
Errors produced while building a transform service.
-type Transform = CookieSessionMiddleware<S>
The TransformService
value created by this factory
type Future = Ready<Result<Self::Transform, Self::InitError>>
The future response value.
-fn new_transform(&self, service: S) -> Self::Future
[src]impl !RefUnwindSafe for CookieSession
impl !Send for CookieSession
impl !Sync for CookieSession
impl Unpin for CookieSession
impl UnwindSafe for CookieSession
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
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.
impl<S, B> Transform<S, ServiceRequest> for CookieSession where
S: Service<ServiceRequest, Response = ServiceResponse<B>>,
S::Future: 'static,
S::Error: 'static,
B: MessageBody + 'static,
B::Error: StdError,
impl !RefUnwindSafe for CookieSession
impl !Send for CookieSession
impl !Sync for CookieSession
impl Unpin for CookieSession
impl UnwindSafe for CookieSession
The high-level interface you use to modify session data.
-Session object is obtained with UserSession::get_session
. The UserSession
trait is
+
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
.
@@ -19,21 +16,21 @@ implemented forHttpRequest
,ServiceRequest
, andOk("Welcome!") }
impl Session
[src]pub fn get<T: DeserializeOwned>(&self, key: &str) -> Result<Option<T>, Error>
[src]Get a value
from the session.
pub fn entries(&self) -> Ref<'_, HashMap<String, String>>
[src]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.
-pub fn insert(
&self,
key: impl Into<String>,
value: impl Serialize
) -> Result<(), Error>
[src]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.
-pub fn remove(&self, key: &str) -> Option<String>
[src]Remove value from the session.
+Remove value from the session.
If present, the JSON encoded value is returned.
-pub fn remove_as<T: DeserializeOwned>(
&self,
key: &str
) -> Option<Result<T, String>>
[src]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.
-pub fn clear(&self)
[src]Clear the session.
-pub fn purge(&self)
[src]Removes session both client and server side.
-pub fn renew(&self)
[src]Renews the session key, assigning existing session state to new key.
-pub fn set_session(
req: &mut ServiceRequest,
data: impl IntoIterator<Item = (String, String)>
)
[src]Adds the given key-value pairs to the session on the request.
+pub fn set_session(
req: &mut ServiceRequest,
data: impl IntoIterator<Item = (String, String)>
)
Adds the given key-value pairs to the session on the request.
Values that match keys already existing on the session will be overwritten. Values should already be JSON serialized.
pub fn get_changes<B>(
res: &mut ServiceResponse<B>
) -> (SessionStatus, impl Iterator<Item = (String, String)>)
[src]Returns session status and iterator of key-value pairs of changes.
-Extractor implementation for Session type.
use actix_session::Session; @@ -62,25 +59,26 @@ already be JSON serialized. let count = session.get::<i32>("counter")?.unwrap(); Ok(format!("Counter: {}", count)) }
type Error = Error
The associated error which can be returned.
-type Future = Ready<Result<Session, Error>>
Future that resolves to a Self.
-type Config = ()
Configuration for this extractor.
-fn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future
[src]pub fn extract(req: &HttpRequest) -> Self::Future
pub fn configure<F>(f: F) -> Self::Config where
F: FnOnce(Self::Config) -> Self::Config,
impl !RefUnwindSafe for Session
impl !Send for Session
impl !Sync for Session
impl Unpin for Session
impl !UnwindSafe for Session
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
type Error = Error
The associated error which can be returned.
+Create a Self from request parts asynchronously.
+impl !RefUnwindSafe for Session
impl !UnwindSafe for Session
Extraction of a Session
object.
fn get_session(&self) -> Session
[src]Extract the Session
object
impl UserSession for HttpRequest
[src]fn get_session(&self) -> Session
[src]impl UserSession for ServiceRequest
[src]fn get_session(&self) -> Session
[src]impl UserSession for RequestHead
[src]fn get_session(&self) -> Session
[src]pub trait UserSession { + fn get_session(&self) -> Session; +}
Extraction of a Session
object.
fn get_session(&self) -> Session
Extract the Session
object
Extractor for the “Basic” HTTP Authentication Scheme
-BasicAuth | Extractor for HTTP Basic auth. - |
Config |
Module actix_web_httpauth:: |
Extractor for HTTP Basic auth.
+pub struct BasicAuth(_);
Extractor for HTTP Basic auth.
use actix_web::Result; @@ -24,40 +21,41 @@ response header. fn main() { let app = App::new() - .data(Config::default().realm("Restricted area")) + .app_data(Config::default().realm("Restricted area")) .service(web::resource("/index.html").route(web::get().to(index))); }
impl BasicAuth
[src]pub fn user_id(&self) -> &Cow<'static, str>
[src]Returns client’s user-ID.
-pub fn password(&self) -> Option<&Cow<'static, str>>
[src]Returns client’s password.
-impl AuthExtractor for BasicAuth
[src]type Error = AuthenticationError<Challenge>
The associated error which can be returned.
-type Future = Ready<Result<Self, Self::Error>>
Future that resolves into extracted credentials type.
-fn from_service_request(req: &ServiceRequest) -> Self::Future
[src]impl Clone for BasicAuth
[src]impl Debug for BasicAuth
[src]impl FromRequest for BasicAuth
[src]type Future = Ready<Result<Self, Self::Error>>
Future that resolves to a Self.
-type Config = Config
Configuration for this extractor.
-type Error = AuthenticationError<Challenge>
The associated error which can be returned.
-fn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future
[src]pub fn extract(req: &HttpRequest) -> Self::Future
pub fn configure<F>(f: F) -> Self::Config where
F: FnOnce(Self::Config) -> Self::Config,
impl RefUnwindSafe for BasicAuth
impl Send for BasicAuth
impl Sync for BasicAuth
impl Unpin for BasicAuth
impl UnwindSafe for BasicAuth
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
The resulting type after obtaining ownership.
-pub fn to_owned(&self) -> T
[src]pub fn clone_into(&self, target: &mut T)
[src]impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
type Error = AuthenticationError<Challenge>
The associated error which can be returned.
+Future that resolves into extracted credentials type.
+Parse the authentication credentials from the actix’ ServiceRequest
.
type Error = AuthenticationError<Challenge>
The associated error which can be returned.
+Create a Self from request parts asynchronously.
+impl RefUnwindSafe for BasicAuth
impl UnwindSafe for BasicAuth
Mutably borrows from an owned value. Read more
+Instruments this type with the provided Span
, returning an
+Instrumented
wrapper. Read more
type Output = T
Should always be Self
pub fn vzip(self) -> V
BasicAuth
extractor configuration,
+
pub struct Config(_);
BasicAuth
extractor configuration,
used for WWW-Authenticate
header later.
impl Config
[src]pub fn realm<T>(self, value: T) -> Config where
T: Into<Cow<'static, str>>,
[src]Set challenge realm
attribute.
impl AsRef<Basic> for Config
[src]impl AuthExtractorConfig for Config
[src]impl Clone for Config
[src]impl Debug for Config
[src]impl Default for Config
[src]impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnwindSafe for Config
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
The resulting type after obtaining ownership.
-pub fn to_owned(&self) -> T
[src]pub fn clone_into(&self, target: &mut T)
[src]impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
Convert the config instance into a HTTP challenge.
+impl RefUnwindSafe for Config
impl UnwindSafe for Config
Mutably borrows from an owned value. Read more
+Instruments this type with the provided Span
, returning an
+Instrumented
wrapper. Read more
type Output = T
Should always be Self
pub fn vzip(self) -> V
impl RefUnwindSafe for Error
impl UnwindSafe for Error
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
+Instrumented
wrapper. Read more
type Output = T
Should always be Self
pub fn vzip(self) -> V
Extractor for the “Bearer” HTTP Authentication Scheme
-BearerAuth | Extractor for HTTP Bearer auth - |
Config | BearerAuth extractor configuration. - |
Error | Bearer authorization error types, described in RFC 6750 - |
Extractor for the “Bearer” HTTP Authentication Scheme
+Extractor for HTTP Bearer auth
+pub struct BearerAuth(_);
Extractor for HTTP Bearer auth
use actix_web_httpauth::extractors::bearer::BearerAuth; @@ -9,7 +6,7 @@ async fn index(auth: BearerAuth) -> String { format!("Hello, user with token {}!", auth.token()) }
If authentication fails, this extractor fetches the Config
instance
+
If authentication fails, this extractor fetches the Config
instance
from the [app data] in order to properly form the WWW-Authenticate
response header.
impl BearerAuth
[src]impl AuthExtractor for BearerAuth
[src]type Future = Ready<Result<Self, Self::Error>>
Future that resolves into extracted credentials type.
-type Error = AuthenticationError<Bearer>
The associated error which can be returned.
-fn from_service_request(req: &ServiceRequest) -> Self::Future
[src]impl Clone for BearerAuth
[src]fn clone(&self) -> BearerAuth
[src]pub fn clone_from(&mut self, source: &Self)
1.0.0[src]impl Debug for BearerAuth
[src]impl FromRequest for BearerAuth
[src]type Config = Config
Configuration for this extractor.
-type Future = Ready<Result<Self, Self::Error>>
Future that resolves to a Self.
-type Error = AuthenticationError<Bearer>
The associated error which can be returned.
-fn from_request(req: &HttpRequest, _payload: &mut Payload) -> Self::Future
[src]pub fn extract(req: &HttpRequest) -> Self::Future
pub fn configure<F>(f: F) -> Self::Config where
F: FnOnce(Self::Config) -> Self::Config,
impl RefUnwindSafe for BearerAuth
impl Send for BearerAuth
impl Sync for BearerAuth
impl Unpin for BearerAuth
impl UnwindSafe for BearerAuth
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
The resulting type after obtaining ownership.
-pub fn to_owned(&self) -> T
[src]pub fn clone_into(&self, target: &mut T)
[src]impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
Future that resolves into extracted credentials type.
+type Error = AuthenticationError<Bearer>
The associated error which can be returned.
+Parse the authentication credentials from the actix’ ServiceRequest
.
type Error = AuthenticationError<Bearer>
The associated error which can be returned.
+Create a Self from request parts asynchronously.
+impl RefUnwindSafe for BearerAuth
impl Send for BearerAuth
impl Sync for BearerAuth
impl Unpin for BearerAuth
impl UnwindSafe for BearerAuth
Mutably borrows from an owned value. Read more
+Instruments this type with the provided Span
, returning an
+Instrumented
wrapper. Read more
type Output = T
Should always be Self
pub fn vzip(self) -> V
BearerAuth extractor configuration.
-impl Config
[src]pub fn scope<T: Into<Cow<'static, str>>>(self, value: T) -> Config
[src]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.
pub fn realm<T: Into<Cow<'static, str>>>(self, value: T) -> Config
[src]Set challenge realm
attribute.
impl AsRef<Bearer> for Config
[src]impl AuthExtractorConfig for Config
[src]impl Clone for Config
[src]impl Debug for Config
[src]impl Default for Config
[src]impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnwindSafe for Config
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
The resulting type after obtaining ownership.
-pub fn to_owned(&self) -> T
[src]pub fn clone_into(&self, target: &mut T)
[src]impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
Convert the config instance into a HTTP challenge.
+impl RefUnwindSafe for Config
impl UnwindSafe for Config
Mutably borrows from an owned value. Read more
+Instruments this type with the provided Span
, returning an
+Instrumented
wrapper. Read more
type Output = T
Should always be Self
pub fn vzip(self) -> V
Redirecting to ../../../actix_web_httpauth/extractors/trait.AuthExtractorConfig.html...
diff --git a/actix_web_httpauth/extractors/errors/struct.AuthenticationError.html b/actix_web_httpauth/extractors/errors/struct.AuthenticationError.html index ab93b3583..4bd4d8e74 100644 --- a/actix_web_httpauth/extractors/errors/struct.AuthenticationError.html +++ b/actix_web_httpauth/extractors/errors/struct.AuthenticationError.html @@ -2,6 +2,7 @@ +Redirecting to ../../../actix_web_httpauth/extractors/struct.AuthenticationError.html...
diff --git a/actix_web_httpauth/extractors/index.html b/actix_web_httpauth/extractors/index.html index 5457095eb..9716494ae 100644 --- a/actix_web_httpauth/extractors/index.html +++ b/actix_web_httpauth/extractors/index.html @@ -1,16 +1,14 @@ -Type-safe authentication information extractors
-basic | Extractor for the “Basic” HTTP Authentication Scheme - |
bearer | Extractor for the “Bearer” HTTP Authentication Scheme - |
AuthenticationError | Authentication error returned by authentication extractors. - |
AuthExtractor | Trait implemented by types that can extract + Module actix_web_httpauth:: |
AuthExtractorConfig | Trait implemented for types that provides configuration + Trait implemented for types that provides configuration for the authentication extractors. - |
Authentication error returned by authentication extractors.
+pub struct AuthenticationError<C: Challenge> { /* fields omitted */ }
Authentication error returned by authentication extractors.
Different extractors may extend AuthenticationError
implementation
in order to provide access to inner challenge fields.
impl AuthenticationError<Bearer>
[src]Extended error customization for HTTP Bearer
auth.
pub fn with_error(self, kind: Error) -> Self
[src]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.
pub fn with_error_description<T>(self, desc: T) -> Self where
T: Into<Cow<'static, str>>,
[src]Attach error description to the current Authentication error.
-pub fn with_error_uri<T>(self, uri: T) -> Self where
T: Into<Cow<'static, str>>,
[src]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.
-impl<C: Challenge> AuthenticationError<C>
[src]pub fn new(challenge: C) -> AuthenticationError<C>
[src]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.
pub fn challenge_mut(&mut self) -> &mut C
[src]Returns mutable reference to the inner challenge instance.
-pub fn status_code_mut(&mut self) -> &mut StatusCode
[src]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.
-impl<C: Debug + Challenge> Debug for AuthenticationError<C>
[src]impl<C: Challenge> Display for AuthenticationError<C>
[src]impl<C: 'static + Challenge> Error for AuthenticationError<C>
[src]pub fn source(&self) -> Option<&(dyn Error + 'static)>
1.30.0[src]pub fn backtrace(&self) -> Option<&Backtrace>
[src]pub fn description(&self) -> &str
1.0.0[src]pub fn cause(&self) -> Option<&dyn Error>
1.0.0[src]impl<T> From<T> for AuthenticationError<<T as AuthExtractorConfig>::Inner> where
T: AuthExtractorConfig,
[src]impl<C: 'static + Challenge> ResponseError for AuthenticationError<C>
[src]fn error_response(&self) -> HttpResponse
[src]fn status_code(&self) -> StatusCode
[src]impl<C> RefUnwindSafe for AuthenticationError<C> where
C: RefUnwindSafe,
impl<C> Send for AuthenticationError<C>
impl<C> Sync for AuthenticationError<C>
impl<C> Unpin for AuthenticationError<C> where
C: Unpin,
impl<C> UnwindSafe for AuthenticationError<C> where
C: UnwindSafe,
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToString for T where
T: Display + ?Sized,
[src]impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<T> From<T> for AuthenticationError<<T as AuthExtractorConfig>::Inner> where
T: AuthExtractorConfig,
impl<C> RefUnwindSafe for AuthenticationError<C> where
C: RefUnwindSafe,
impl<C> Send for AuthenticationError<C>
impl<C> Sync for AuthenticationError<C>
impl<C> Unpin for AuthenticationError<C> where
C: Unpin,
impl<C> UnwindSafe for AuthenticationError<C> where
C: UnwindSafe,
fn from_service_request(req: &ServiceRequest) -> Self::Future
Parse the authentication credentials from the actix’ ServiceRequest
.
Trait implemented for types that provides configuration +
pub trait AuthExtractorConfig { + type Inner: Challenge; + fn into_inner(self) -> Self::Inner; +}
Trait implemented for types that provides configuration for the authentication extractors.
-fn into_inner(self) -> Self::Inner
[src]Convert the config instance into a HTTP challenge.
-impl AuthExtractorConfig for actix_web_httpauth::extractors::basic::Config
[src]type Inner = Challenge
fn into_inner(self) -> Self::Inner
[src]impl AuthExtractorConfig for actix_web_httpauth::extractors::bearer::Config
[src]type Inner = Bearer
fn into_inner(self) -> Self::Inner
[src]fn into_inner(self) -> Self::Inner
Convert the config instance into a HTTP challenge.
+Performs the conversion.
+impl RefUnwindSafe for ParseError
impl Send for ParseError
impl Sync for ParseError
impl Unpin for ParseError
impl UnwindSafe for ParseError
Redirecting to ../../../../actix_web_httpauth/headers/authorization/enum.ParseError.html...
diff --git a/actix_web_httpauth/headers/authorization/header/struct.Authorization.html b/actix_web_httpauth/headers/authorization/header/struct.Authorization.html index 7e2c31cdb..03c0678c5 100644 --- a/actix_web_httpauth/headers/authorization/header/struct.Authorization.html +++ b/actix_web_httpauth/headers/authorization/header/struct.Authorization.html @@ -2,6 +2,7 @@ +Redirecting to ../../../../actix_web_httpauth/headers/authorization/struct.Authorization.html...
diff --git a/actix_web_httpauth/headers/authorization/index.html b/actix_web_httpauth/headers/authorization/index.html index ace8e6401..365938fd8 100644 --- a/actix_web_httpauth/headers/authorization/index.html +++ b/actix_web_httpauth/headers/authorization/index.html @@ -1,15 +1,13 @@ -Authorization
header and various auth schemes
Authorization |
|
Basic | Credentials for |
Bearer | Credentials for |
ParseError | Possible errors while parsing |
Scheme | Authentication scheme for Module actix_web_httpauth:: |
Redirecting to ../../../../../actix_web_httpauth/headers/authorization/struct.Basic.html...
diff --git a/actix_web_httpauth/headers/authorization/scheme/bearer/struct.Bearer.html b/actix_web_httpauth/headers/authorization/scheme/bearer/struct.Bearer.html index 2e9dead17..79f4225a7 100644 --- a/actix_web_httpauth/headers/authorization/scheme/bearer/struct.Bearer.html +++ b/actix_web_httpauth/headers/authorization/scheme/bearer/struct.Bearer.html @@ -2,6 +2,7 @@ +Redirecting to ../../../../../actix_web_httpauth/headers/authorization/struct.Bearer.html...
diff --git a/actix_web_httpauth/headers/authorization/scheme/trait.Scheme.html b/actix_web_httpauth/headers/authorization/scheme/trait.Scheme.html index 11a90ef8d..cc34e2687 100644 --- a/actix_web_httpauth/headers/authorization/scheme/trait.Scheme.html +++ b/actix_web_httpauth/headers/authorization/scheme/trait.Scheme.html @@ -2,6 +2,7 @@ +Redirecting to ../../../../actix_web_httpauth/headers/authorization/trait.Scheme.html...
diff --git a/actix_web_httpauth/headers/authorization/struct.Authorization.html b/actix_web_httpauth/headers/authorization/struct.Authorization.html index e719fd5d8..bd6d1a207 100644 --- a/actix_web_httpauth/headers/authorization/struct.Authorization.html +++ b/actix_web_httpauth/headers/authorization/struct.Authorization.html @@ -1,7 +1,4 @@ -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 @@ -16,56 +13,57 @@ scheme.
Ok(format!("Hello, {}!", auth.as_ref().user_id())) }impl<S> Authorization<S> where
S: Scheme,
[src]pub fn into_scheme(self) -> S
[src]Consumes Authorization
header and returns inner Scheme
+
Consumes Authorization
header and returns inner Scheme
implementation.
impl<S> AsMut<S> for Authorization<S> where
S: Scheme,
[src]impl<S> AsRef<S> for Authorization<S> where
S: Scheme,
[src]impl<S: Clone + Scheme> Clone for Authorization<S>
[src]fn clone(&self) -> Authorization<S>
[src]pub fn clone_from(&mut self, source: &Self)
1.0.0[src]impl<S: Debug + Scheme> Debug for Authorization<S>
[src]impl<S: Default + Scheme> Default for Authorization<S>
[src]fn default() -> Authorization<S>
[src]impl<S: Scheme> Display for Authorization<S>
[src]impl<S: Eq + Scheme> Eq for Authorization<S>
[src]impl<S> From<S> for Authorization<S> where
S: Scheme,
[src]fn from(scheme: S) -> Authorization<S>
[src]impl<S: Hash + Scheme> Hash for Authorization<S>
[src]fn hash<__H: Hasher>(&self, state: &mut __H)
[src]pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]impl<S: Scheme> Header for Authorization<S>
[src]impl<S: Scheme> IntoHeaderValue for Authorization<S>
[src]type Error = <S as IntoHeaderValue>::Error
The type returned in the event of a conversion error.
-fn try_into_value(self) -> Result<HeaderValue, Self::Error>
[src]impl<S: Ord + Scheme> Ord for Authorization<S>
[src]fn cmp(&self, other: &Authorization<S>) -> Ordering
[src]#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]impl<S: PartialEq + Scheme> PartialEq<Authorization<S>> for Authorization<S>
[src]fn eq(&self, other: &Authorization<S>) -> bool
[src]Returns the “default value” for a type. Read more
+Performs the conversion.
+type Error = <S as IntoHeaderValue>::Error
The type returned in the event of a conversion error.
+Try to convert value to a HeaderValue.
+This method tests for self
and other
values to be equal, and is used
by ==
. Read more
fn ne(&self, other: &Authorization<S>) -> bool
[src]impl<S: PartialOrd + Scheme> PartialOrd<Authorization<S>> for Authorization<S>
[src]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
#[must_use]pub fn gt(&self, other: &Rhs) -> bool
1.0.0[src]#[must_use]pub fn ge(&self, other: &Rhs) -> bool
1.0.0[src]This method tests greater than (for self
and other
) and is used by the >
operator. Read more
impl<S: Scheme> StructuralEq for Authorization<S>
[src]impl<S: Scheme> StructuralPartialEq for Authorization<S>
[src]impl<S> RefUnwindSafe for Authorization<S> where
S: RefUnwindSafe,
impl<S> Send for Authorization<S>
impl<S> Sync for Authorization<S>
impl<S> Unpin for Authorization<S> where
S: Unpin,
impl<S> UnwindSafe for Authorization<S> where
S: UnwindSafe,
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> CallHasher for T where
T: Hash + ?Sized,
pub default fn get_hash<H, B>(value: &H, build_hasher: &B) -> u64 where
B: BuildHasher,
H: Hash + ?Sized,
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]pub fn equivalent(&self, key: &K) -> bool
[src]impl<T> From<!> for T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> IntoHeaderPair for T where
T: Header,
type Error = <T as IntoHeaderValue>::Error
pub fn try_into_header_pair(
self
) -> Result<(HeaderName, HeaderValue), <T as IntoHeaderPair>::Error>
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
The resulting type after obtaining ownership.
-pub fn to_owned(&self) -> T
[src]pub fn clone_into(&self, target: &mut T)
[src]impl<T> ToString for T where
T: Display + ?Sized,
[src]impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<S> RefUnwindSafe for Authorization<S> where
S: RefUnwindSafe,
impl<S> Send for Authorization<S>
impl<S> Sync for Authorization<S>
impl<S> Unpin for Authorization<S> where
S: Unpin,
impl<S> UnwindSafe for Authorization<S> where
S: UnwindSafe,
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
+Instrumented
wrapper. Read more
type Error = <T as IntoHeaderValue>::Error
pub fn try_into_header_pair(
self
) -> Result<(HeaderName, HeaderValue), <T as IntoHeaderPair>::Error>
type Output = T
Should always be Self
pub fn vzip(self) -> V
Credentials for Basic
authentication scheme, defined in RFC 7617
impl Basic
[src]pub fn new<U, P>(user_id: U, password: Option<P>) -> Basic where
U: Into<Cow<'static, str>>,
P: Into<Cow<'static, str>>,
[src]Creates Basic
credentials with provided user_id
and optional
+
pub struct Basic { /* fields omitted */ }
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"));
pub fn user_id(&self) -> &Cow<'static, str>
[src]Returns client’s user-ID.
-pub fn password(&self) -> Option<&Cow<'static, str>>
[src]Returns client’s password if provided.
-impl Clone for Basic
[src]impl Debug for Basic
[src]impl Display for Basic
[src]impl Eq for Basic
[src]impl IntoHeaderValue for Basic
[src]type Error = InvalidHeaderValue
The type returned in the event of a conversion error.
-fn try_into_value(self) -> Result<HeaderValue, Self::Error>
[src]impl Ord for Basic
[src]fn cmp(&self, other: &Basic) -> Ordering
[src]#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]impl PartialEq<Basic> for Basic
[src]type Error = InvalidHeaderValue
The type returned in the event of a conversion error.
+Try to convert value to a HeaderValue.
+This method returns an ordering between self
and other
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
#[must_use]pub fn gt(&self, other: &Rhs) -> bool
1.0.0[src]#[must_use]pub fn ge(&self, other: &Rhs) -> bool
1.0.0[src]This method tests greater than (for self
and other
) and is used by the >
operator. Read more
impl Scheme for Basic
[src]fn parse(header: &HeaderValue) -> Result<Self, ParseError>
[src]impl StructuralEq for Basic
[src]impl StructuralPartialEq for Basic
[src]impl RefUnwindSafe for Basic
impl Send for Basic
impl Sync for Basic
impl Unpin for Basic
impl UnwindSafe for Basic
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]pub fn equivalent(&self, key: &K) -> bool
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
The resulting type after obtaining ownership.
-pub fn to_owned(&self) -> T
[src]pub fn clone_into(&self, target: &mut T)
[src]impl<T> ToString for T where
T: Display + ?Sized,
[src]impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
Try to parse the authentication scheme from the Authorization
header.
impl RefUnwindSafe for Basic
impl UnwindSafe for Basic
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
+Instrumented
wrapper. Read more
type Output = T
Should always be Self
pub fn vzip(self) -> V
Credentials for Bearer
authentication scheme, defined in RFC6750
pub struct Bearer { /* fields omitted */ }
Credentials for Bearer
authentication scheme, defined in RFC6750
Should be used in combination with
Authorization
header.
impl Bearer
[src]pub fn new<T>(token: T) -> Bearer where
T: Into<Cow<'static, str>>,
[src]Creates new Bearer
credentials with the token provided.
impl Clone for Bearer
[src]impl Debug for Bearer
[src]impl Display for Bearer
[src]impl Eq for Bearer
[src]impl IntoHeaderValue for Bearer
[src]type Error = InvalidHeaderValue
The type returned in the event of a conversion error.
-fn try_into_value(self) -> Result<HeaderValue, Self::Error>
[src]impl Ord for Bearer
[src]fn cmp(&self, other: &Bearer) -> Ordering
[src]#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]impl PartialEq<Bearer> for Bearer
[src]type Error = InvalidHeaderValue
The type returned in the event of a conversion error.
+Try to convert value to a HeaderValue.
+This method returns an ordering between self
and other
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
#[must_use]pub fn gt(&self, other: &Rhs) -> bool
1.0.0[src]#[must_use]pub fn ge(&self, other: &Rhs) -> bool
1.0.0[src]This method tests greater than (for self
and other
) and is used by the >
operator. Read more
impl Scheme for Bearer
[src]fn parse(header: &HeaderValue) -> Result<Self, ParseError>
[src]impl StructuralEq for Bearer
[src]impl StructuralPartialEq for Bearer
[src]impl RefUnwindSafe for Bearer
impl Send for Bearer
impl Sync for Bearer
impl Unpin for Bearer
impl UnwindSafe for Bearer
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]pub fn equivalent(&self, key: &K) -> bool
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
The resulting type after obtaining ownership.
-pub fn to_owned(&self) -> T
[src]pub fn clone_into(&self, target: &mut T)
[src]impl<T> ToString for T where
T: Display + ?Sized,
[src]impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
Try to parse the authentication scheme from the Authorization
header.
impl RefUnwindSafe for Bearer
impl UnwindSafe for Bearer
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
+Instrumented
wrapper. Read more
type Output = T
Should always be Self
pub fn vzip(self) -> V
Authentication scheme for Authorization
+
pub trait Scheme: IntoHeaderValue + Debug + Display + Clone + Send + Sync { + fn parse(header: &HeaderValue) -> Result<Self, ParseError>; +}
Authentication scheme for Authorization
header.
fn parse(header: &HeaderValue) -> Result<Self, ParseError>
[src]Try to parse the authentication scheme from the Authorization
header.
impl Scheme for Basic
[src]fn parse(header: &HeaderValue) -> Result<Self, ParseError>
[src]impl Scheme for Bearer
[src]fn parse(header: &HeaderValue) -> Result<Self, ParseError>
[src]fn parse(header: &HeaderValue) -> Result<Self, ParseError>
Try to parse the authentication scheme from the Authorization
header.
Typed HTTP headers
-authorization |
|
www_authenticate |
|
Typed HTTP headers
+Authorization
header and various auth schemes
WWW-Authenticate
header and various auth challenges
Challenge for the “Basic” HTTP Authentication Scheme
-Basic | Challenge for Module actix_web_httpauth:: |
Challenge for WWW-Authenticate
header with HTTP Basic auth scheme,
+
pub struct Basic { /* fields omitted */ }
Challenge for WWW-Authenticate
header with HTTP Basic auth scheme,
described in RFC 7617
@@ -15,11 +12,11 @@ described in RFC 7617 .insert_header(WwwAuthenticate(challenge)) .finish() }
impl Basic
[src]pub fn new() -> Basic
[src]Creates new Basic
challenge with an empty realm
field.
pub fn with_realm<T>(value: T) -> Basic where
T: Into<Cow<'static, str>>,
[src]Creates new Basic
challenge from the provided realm
field value.
impl AsRef<Basic> for Config
[src]impl Clone for Basic
[src]impl Debug for Basic
[src]impl Default for Basic
[src]impl Display for Basic
[src]impl Eq for Basic
[src]impl Hash for Basic
[src]fn hash<__H: Hasher>(&self, state: &mut __H)
[src]pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]impl IntoHeaderValue for Basic
[src]type Error = InvalidHeaderValue
The type returned in the event of a conversion error.
-fn try_into_value(self) -> Result<HeaderValue, Self::Error>
[src]impl Ord for Basic
[src]fn cmp(&self, other: &Basic) -> Ordering
[src]#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]impl PartialEq<Basic> for Basic
[src]type Error = InvalidHeaderValue
The type returned in the event of a conversion error.
+Try to convert value to a HeaderValue.
+This method returns an ordering between self
and other
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
#[must_use]pub fn gt(&self, other: &Rhs) -> bool
1.0.0[src]#[must_use]pub fn ge(&self, other: &Rhs) -> bool
1.0.0[src]This method tests greater than (for self
and other
) and is used by the >
operator. Read more
impl StructuralEq for Basic
[src]impl StructuralPartialEq for Basic
[src]impl RefUnwindSafe for Basic
impl Send for Basic
impl Sync for Basic
impl Unpin for Basic
impl UnwindSafe for Basic
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> CallHasher for T where
T: Hash + ?Sized,
pub default fn get_hash<H, B>(value: &H, build_hasher: &B) -> u64 where
B: BuildHasher,
H: Hash + ?Sized,
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]pub fn equivalent(&self, key: &K) -> bool
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
The resulting type after obtaining ownership.
-pub fn to_owned(&self) -> T
[src]pub fn clone_into(&self, target: &mut T)
[src]impl<T> ToString for T where
T: Display + ?Sized,
[src]impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl RefUnwindSafe for Basic
impl UnwindSafe for Basic
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
+Instrumented
wrapper. Read more
type Output = T
Should always be Self
pub fn vzip(self) -> V
impl RefUnwindSafe for Error
impl UnwindSafe for Error
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
+Instrumented
wrapper. Read more
type Output = T
Should always be Self
pub fn vzip(self) -> V
Challenge for the “Bearer” HTTP Authentication Scheme
-Bearer | Challenge for Module actix_web_httpauth:: |
BearerBuilder | Builder for the |
Error | Bearer authorization error types, described in RFC 6750 - |
Builder for the Bearer
challenge.
Challenge for WWW-Authenticate
header with HTTP Bearer auth scheme,
+
pub struct Bearer { /* fields omitted */ }
Challenge for WWW-Authenticate
header with HTTP Bearer auth scheme,
described in RFC 6750
@@ -23,56 +20,57 @@ described in RFC 6750insert_header(WwwAuthenticate(challenge)) .finish() }
impl Bearer
[src]pub fn build() -> BearerBuilder
[src]Creates the builder for Bearer
challenge.
Creates the builder for Bearer
challenge.
let challenge = Bearer::build() .realm("Restricted area") .scope("openid profile email") .finish();
impl AsRef<Bearer> for Config
[src]impl Clone for Bearer
[src]impl Debug for Bearer
[src]impl Default for Bearer
[src]impl Display for Bearer
[src]impl Eq for Bearer
[src]impl Hash for Bearer
[src]fn hash<__H: Hasher>(&self, state: &mut __H)
[src]pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]impl IntoHeaderValue for Bearer
[src]type Error = InvalidHeaderValue
The type returned in the event of a conversion error.
-fn try_into_value(self) -> Result<HeaderValue, Self::Error>
[src]impl Ord for Bearer
[src]fn cmp(&self, other: &Bearer) -> Ordering
[src]#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]impl PartialEq<Bearer> for Bearer
[src]type Error = InvalidHeaderValue
The type returned in the event of a conversion error.
+Try to convert value to a HeaderValue.
+This method returns an ordering between self
and other
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
#[must_use]pub fn gt(&self, other: &Rhs) -> bool
1.0.0[src]#[must_use]pub fn ge(&self, other: &Rhs) -> bool
1.0.0[src]This method tests greater than (for self
and other
) and is used by the >
operator. Read more
impl StructuralEq for Bearer
[src]impl StructuralPartialEq for Bearer
[src]impl RefUnwindSafe for Bearer
impl Send for Bearer
impl Sync for Bearer
impl Unpin for Bearer
impl UnwindSafe for Bearer
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> CallHasher for T where
T: Hash + ?Sized,
pub default fn get_hash<H, B>(value: &H, build_hasher: &B) -> u64 where
B: BuildHasher,
H: Hash + ?Sized,
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]pub fn equivalent(&self, key: &K) -> bool
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
The resulting type after obtaining ownership.
-pub fn to_owned(&self) -> T
[src]pub fn clone_into(&self, target: &mut T)
[src]impl<T> ToString for T where
T: Display + ?Sized,
[src]impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl RefUnwindSafe for Bearer
impl UnwindSafe for Bearer
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
+Instrumented
wrapper. Read more
type Output = T
Should always be Self
pub fn vzip(self) -> V
Builder for the Bearer
challenge.
pub struct BearerBuilder(_);
Builder for the Bearer
challenge.
It is up to implementor to fill all required fields,
neither this Builder
or Bearer
does not provide any validation.
impl BearerBuilder
[src]pub fn scope<T>(self, value: T) -> Self where
T: Into<Cow<'static, str>>,
[src]Provides the scope
attribute, as defined in RFC6749, Section 3.3
pub fn realm<T>(self, value: T) -> Self where
T: Into<Cow<'static, str>>,
[src]Provides the realm
attribute, as defined in RFC2617
pub fn error(self, value: Error) -> Self
[src]Provides the error
attribute, as defined in RFC6750, Section 3.1
pub fn error_description<T>(self, value: T) -> Self where
T: Into<Cow<'static, str>>,
[src]Provides the error_description
attribute, as defined in RFC6750, Section 3
pub fn error_uri<T>(self, value: T) -> Self where
T: Into<Cow<'static, str>>,
[src]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.
-pub fn finish(self) -> Bearer
[src]Consumes the builder and returns built Bearer
instance.
impl Debug for BearerBuilder
[src]impl Default for BearerBuilder
[src]fn default() -> BearerBuilder
[src]impl RefUnwindSafe for BearerBuilder
impl Send for BearerBuilder
impl Sync for BearerBuilder
impl Unpin for BearerBuilder
impl UnwindSafe for BearerBuilder
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
Returns the “default value” for a type. Read more
+impl RefUnwindSafe for BearerBuilder
impl Send for BearerBuilder
impl Sync for BearerBuilder
impl Unpin for BearerBuilder
impl UnwindSafe for BearerBuilder
Redirecting to ../../../../../actix_web_httpauth/headers/www_authenticate/basic/index.html...
diff --git a/actix_web_httpauth/headers/www_authenticate/challenge/basic/struct.Basic.html b/actix_web_httpauth/headers/www_authenticate/challenge/basic/struct.Basic.html index 62cd49f03..f1fbe4e42 100644 --- a/actix_web_httpauth/headers/www_authenticate/challenge/basic/struct.Basic.html +++ b/actix_web_httpauth/headers/www_authenticate/challenge/basic/struct.Basic.html @@ -2,6 +2,7 @@ +Redirecting to ../../../../../actix_web_httpauth/headers/www_authenticate/basic/struct.Basic.html...
diff --git a/actix_web_httpauth/headers/www_authenticate/challenge/bearer/builder/struct.BearerBuilder.html b/actix_web_httpauth/headers/www_authenticate/challenge/bearer/builder/struct.BearerBuilder.html index ad16ff0df..009788846 100644 --- a/actix_web_httpauth/headers/www_authenticate/challenge/bearer/builder/struct.BearerBuilder.html +++ b/actix_web_httpauth/headers/www_authenticate/challenge/bearer/builder/struct.BearerBuilder.html @@ -2,6 +2,7 @@ +Redirecting to ../../../../../../actix_web_httpauth/headers/www_authenticate/bearer/struct.BearerBuilder.html...
diff --git a/actix_web_httpauth/headers/www_authenticate/challenge/bearer/challenge/struct.Bearer.html b/actix_web_httpauth/headers/www_authenticate/challenge/bearer/challenge/struct.Bearer.html index 29f95b245..f5e642e72 100644 --- a/actix_web_httpauth/headers/www_authenticate/challenge/bearer/challenge/struct.Bearer.html +++ b/actix_web_httpauth/headers/www_authenticate/challenge/bearer/challenge/struct.Bearer.html @@ -2,6 +2,7 @@ +Redirecting to ../../../../../../actix_web_httpauth/headers/www_authenticate/bearer/struct.Bearer.html...
diff --git a/actix_web_httpauth/headers/www_authenticate/challenge/bearer/errors/enum.Error.html b/actix_web_httpauth/headers/www_authenticate/challenge/bearer/errors/enum.Error.html index a4c048dfc..de4e73f59 100644 --- a/actix_web_httpauth/headers/www_authenticate/challenge/bearer/errors/enum.Error.html +++ b/actix_web_httpauth/headers/www_authenticate/challenge/bearer/errors/enum.Error.html @@ -2,6 +2,7 @@ +Redirecting to ../../../../../../actix_web_httpauth/extractors/bearer/enum.Error.html...
diff --git a/actix_web_httpauth/headers/www_authenticate/challenge/bearer/index.html b/actix_web_httpauth/headers/www_authenticate/challenge/bearer/index.html index 5570fdcda..518feee9a 100644 --- a/actix_web_httpauth/headers/www_authenticate/challenge/bearer/index.html +++ b/actix_web_httpauth/headers/www_authenticate/challenge/bearer/index.html @@ -2,6 +2,7 @@ +Redirecting to ../../../../../actix_web_httpauth/headers/www_authenticate/bearer/index.html...
diff --git a/actix_web_httpauth/headers/www_authenticate/challenge/trait.Challenge.html b/actix_web_httpauth/headers/www_authenticate/challenge/trait.Challenge.html index 24e29a275..036b7c096 100644 --- a/actix_web_httpauth/headers/www_authenticate/challenge/trait.Challenge.html +++ b/actix_web_httpauth/headers/www_authenticate/challenge/trait.Challenge.html @@ -2,6 +2,7 @@ +Redirecting to ../../../../actix_web_httpauth/headers/www_authenticate/trait.Challenge.html...
diff --git a/actix_web_httpauth/headers/www_authenticate/header/struct.WwwAuthenticate.html b/actix_web_httpauth/headers/www_authenticate/header/struct.WwwAuthenticate.html index a9fe30952..e7f185c85 100644 --- a/actix_web_httpauth/headers/www_authenticate/header/struct.WwwAuthenticate.html +++ b/actix_web_httpauth/headers/www_authenticate/header/struct.WwwAuthenticate.html @@ -2,6 +2,7 @@ +Redirecting to ../../../../actix_web_httpauth/headers/www_authenticate/struct.WwwAuthenticate.html...
diff --git a/actix_web_httpauth/headers/www_authenticate/index.html b/actix_web_httpauth/headers/www_authenticate/index.html index 4e5eb249a..749fa61b7 100644 --- a/actix_web_httpauth/headers/www_authenticate/index.html +++ b/actix_web_httpauth/headers/www_authenticate/index.html @@ -1,13 +1,11 @@ -WWW-Authenticate
header and various auth challenges
basic | Challenge for the “Basic” HTTP Authentication Scheme - |
bearer | Challenge for the “Bearer” HTTP Authentication Scheme - |
WwwAuthenticate |
|
Challenge | Authentication challenge for |
WWW-Authenticate
header and various auth challenges
Challenge for the “Basic” HTTP Authentication Scheme
+Challenge for the “Bearer” HTTP Authentication Scheme
+WWW-Authenticate
header, described in RFC 7235
Authentication challenge for WWW-Authenticate
header.
WWW-Authenticate
header, described in RFC 7235
pub struct WwwAuthenticate<C: Challenge>(pub C);
WWW-Authenticate
header, described in RFC 7235
This header is generic over Challenge trait, see Basic and Bearer challenges for details.
-impl<C: Clone + Challenge> Clone for WwwAuthenticate<C>
[src]fn clone(&self) -> WwwAuthenticate<C>
[src]pub fn clone_from(&mut self, source: &Self)
1.0.0[src]impl<C: Debug + Challenge> Debug for WwwAuthenticate<C>
[src]impl<C: Default + Challenge> Default for WwwAuthenticate<C>
[src]fn default() -> WwwAuthenticate<C>
[src]impl<C: Eq + Challenge> Eq for WwwAuthenticate<C>
[src]impl<C: Hash + Challenge> Hash for WwwAuthenticate<C>
[src]fn hash<__H: Hasher>(&self, state: &mut __H)
[src]pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]impl<C: Challenge> Header for WwwAuthenticate<C>
[src]impl<C: Challenge> IntoHeaderValue for WwwAuthenticate<C>
[src]type Error = <C as IntoHeaderValue>::Error
The type returned in the event of a conversion error.
-fn try_into_value(self) -> Result<HeaderValue, Self::Error>
[src]impl<C: Ord + Challenge> Ord for WwwAuthenticate<C>
[src]fn cmp(&self, other: &WwwAuthenticate<C>) -> Ordering
[src]#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]impl<C: PartialEq + Challenge> PartialEq<WwwAuthenticate<C>> for WwwAuthenticate<C>
[src]fn eq(&self, other: &WwwAuthenticate<C>) -> bool
[src]Returns the “default value” for a type. Read more
+type Error = <C as IntoHeaderValue>::Error
The type returned in the event of a conversion error.
+Try to convert value to a HeaderValue.
+This method tests for self
and other
values to be equal, and is used
by ==
. Read more
fn ne(&self, other: &WwwAuthenticate<C>) -> bool
[src]impl<C: PartialOrd + Challenge> PartialOrd<WwwAuthenticate<C>> for WwwAuthenticate<C>
[src]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
#[must_use]pub fn gt(&self, other: &Rhs) -> bool
1.0.0[src]#[must_use]pub fn ge(&self, other: &Rhs) -> bool
1.0.0[src]This method tests greater than (for self
and other
) and is used by the >
operator. Read more
impl<C: Challenge> StructuralEq for WwwAuthenticate<C>
[src]impl<C: Challenge> StructuralPartialEq for WwwAuthenticate<C>
[src]impl<C> RefUnwindSafe for WwwAuthenticate<C> where
C: RefUnwindSafe,
impl<C> Send for WwwAuthenticate<C>
impl<C> Sync for WwwAuthenticate<C>
impl<C> Unpin for WwwAuthenticate<C> where
C: Unpin,
impl<C> UnwindSafe for WwwAuthenticate<C> where
C: UnwindSafe,
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> CallHasher for T where
T: Hash + ?Sized,
pub default fn get_hash<H, B>(value: &H, build_hasher: &B) -> u64 where
B: BuildHasher,
H: Hash + ?Sized,
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]pub fn equivalent(&self, key: &K) -> bool
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> IntoHeaderPair for T where
T: Header,
type Error = <T as IntoHeaderValue>::Error
pub fn try_into_header_pair(
self
) -> Result<(HeaderName, HeaderValue), <T as IntoHeaderPair>::Error>
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
The resulting type after obtaining ownership.
-pub fn to_owned(&self) -> T
[src]pub fn clone_into(&self, target: &mut T)
[src]impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<C> RefUnwindSafe for WwwAuthenticate<C> where
C: RefUnwindSafe,
impl<C> Send for WwwAuthenticate<C>
impl<C> Sync for WwwAuthenticate<C>
impl<C> Unpin for WwwAuthenticate<C> where
C: Unpin,
impl<C> UnwindSafe for WwwAuthenticate<C> where
C: UnwindSafe,
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
+Instrumented
wrapper. Read more
type Error = <T as IntoHeaderValue>::Error
pub fn try_into_header_pair(
self
) -> Result<(HeaderName, HeaderValue), <T as IntoHeaderPair>::Error>
type Output = T
Should always be Self
pub fn vzip(self) -> V
Authentication challenge for WWW-Authenticate
header.
HTTP authentication schemes for actix-web.
+HTTP authentication schemes for actix-web.
Provides:
Basic
, as defined in RFC7617Bearer
, as defined in RFC6750extractors | Type-safe authentication information extractors - |
headers | Typed HTTP headers - |
middleware | HTTP Authentication middleware. - |
Type-safe authentication information extractors
+Typed HTTP headers
+HTTP Authentication middleware.
+HTTP Authentication middleware.
-HttpAuthentication | Middleware for checking HTTP authentication. - |
HTTP Authentication middleware.
+Middleware for checking HTTP authentication.
+Middleware for checking HTTP authentication.
+pub struct HttpAuthentication<T, F> where
T: AuthExtractor, { /* fields omitted */ }
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.
impl<T, F, O> HttpAuthentication<T, F> where
T: AuthExtractor,
F: Fn(ServiceRequest, T) -> O,
O: Future<Output = Result<ServiceRequest, Error>>,
[src]pub fn with_fn(process_fn: F) -> HttpAuthentication<T, F>
[src]Construct HttpAuthentication
middleware with the provided auth extractor T
and
+
impl<T, F, O> HttpAuthentication<T, F> where
T: AuthExtractor,
F: Fn(ServiceRequest, T) -> O,
O: Future<Output = Result<ServiceRequest, Error>>,
Construct HttpAuthentication
middleware with the provided auth extractor T
and
validation callback F
.
impl<F, O> HttpAuthentication<BasicAuth, F> where
F: Fn(ServiceRequest, BasicAuth) -> O,
O: Future<Output = Result<ServiceRequest, Error>>,
[src]Construct HttpAuthentication
middleware for the HTTP “Basic” authentication scheme.
// In this example validator returns immediately, but since it is required to return
@@ -23,7 +20,7 @@ validation callback F
.
}
let middleware = HttpAuthentication::basic(validator);
impl<F, O> HttpAuthentication<BearerAuth, F> where
F: Fn(ServiceRequest, BearerAuth) -> O,
O: Future<Output = Result<ServiceRequest, Error>>,
[src]impl<F, O> HttpAuthentication<BearerAuth, F> where
F: Fn(ServiceRequest, BearerAuth) -> O,
O: Future<Output = Result<ServiceRequest, Error>>,
Construct HttpAuthentication
middleware for the HTTP “Bearer” authentication scheme.
async fn validator(req: ServiceRequest, credentials: BearerAuth) -> Result<ServiceRequest, Error> {
@@ -40,32 +37,33 @@ validation callback F
.
}
let middleware = HttpAuthentication::bearer(validator);
impl<T: Clone, F: Clone> Clone for HttpAuthentication<T, F> where
T: AuthExtractor,
[src]fn clone(&self) -> HttpAuthentication<T, F>
[src]pub fn clone_from(&mut self, source: &Self)
1.0.0[src]impl<T: Debug, F: Debug> Debug for HttpAuthentication<T, F> where
T: AuthExtractor,
[src]impl<S, B, T, F, O> Transform<S, ServiceRequest> for HttpAuthentication<T, F> where
S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static,
S::Future: 'static,
F: Fn(ServiceRequest, T) -> O + 'static,
O: Future<Output = Result<ServiceRequest, Error>> + 'static,
T: AuthExtractor + 'static,
[src]type Response = ServiceResponse<B>
Responses produced by the service.
-type Error = Error
Errors produced by the service.
-type Transform = AuthenticationMiddleware<S, F, T>
The TransformService
value created by this factory
type InitError = ()
Errors produced while building a transform service.
-type Future = Ready<Result<Self::Transform, Self::InitError>>
The future response value.
-fn new_transform(&self, service: S) -> Self::Future
[src]impl<T, F> RefUnwindSafe for HttpAuthentication<T, F> where
F: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, F> Send for HttpAuthentication<T, F> where
F: Send + Sync,
T: Send,
impl<T, F> Sync for HttpAuthentication<T, F> where
F: Send + Sync,
T: Sync,
impl<T, F> Unpin for HttpAuthentication<T, F> where
T: Unpin,
impl<T, F> UnwindSafe for HttpAuthentication<T, F> where
F: RefUnwindSafe,
T: UnwindSafe,
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
The resulting type after obtaining ownership.
-pub fn to_owned(&self) -> T
[src]pub fn clone_into(&self, target: &mut T)
[src]impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<S, B, T, F, O> Transform<S, ServiceRequest> for HttpAuthentication<T, F> where
S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static,
S::Future: 'static,
F: Fn(ServiceRequest, T) -> O + 'static,
O: Future<Output = Result<ServiceRequest, Error>> + 'static,
T: AuthExtractor + 'static,
B: MessageBody + 'static,
B::Error: StdError,
impl<T, F> RefUnwindSafe for HttpAuthentication<T, F> where
F: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, F> Send for HttpAuthentication<T, F> where
F: Send + Sync,
T: Send,
impl<T, F> Sync for HttpAuthentication<T, F> where
F: Send + Sync,
T: Sync,
impl<T, F> Unpin for HttpAuthentication<T, F> where
T: Unpin,
impl<T, F> UnwindSafe for HttpAuthentication<T, F> where
F: RefUnwindSafe,
T: UnwindSafe,
Mutably borrows from an owned value. Read more
+Instruments this type with the provided Span
, returning an
+Instrumented
wrapper. Read more
type Output = T
Should always be Self
pub fn vzip(self) -> V
"+""+(item.is_alias===true?(""+item.alias+" - see "):"")+item.displayPath+""+name+" | "+""+""+item.desc+" |
"+code.outerHTML+" |
fn:
) to \
+if(!String.prototype.startsWith){String.prototype.startsWith=function(searchString,position){position=position||0;return this.indexOf(searchString,position)===position}}if(!String.prototype.endsWith){String.prototype.endsWith=function(suffix,length){var l=length||this.length;return this.indexOf(suffix,l-suffix.length)!==-1}}if(!DOMTokenList.prototype.add){DOMTokenList.prototype.add=function(className){if(className&&!hasClass(this,className)){if(this.className&&this.className.length>0){this.className+=" "+className}else{this.className=className}}}}if(!DOMTokenList.prototype.remove){DOMTokenList.prototype.remove=function(className){if(className&&this.className){this.className=(" "+this.className+" ").replace(" "+className+" "," ").trim()}}}(function(){var rustdocVars=document.getElementById("rustdoc-vars");if(rustdocVars){window.rootPath=rustdocVars.attributes["data-root-path"].value;window.currentCrate=rustdocVars.attributes["data-current-crate"].value;window.searchJS=rustdocVars.attributes["data-search-js"].value;window.searchIndexJS=rustdocVars.attributes["data-search-index-js"].value}var sidebarVars=document.getElementById("sidebar-vars");if(sidebarVars){window.sidebarCurrent={name:sidebarVars.attributes["data-name"].value,ty:sidebarVars.attributes["data-ty"].value,relpath:sidebarVars.attributes["data-relpath"].value,}}}());function getVirtualKey(ev){if("key"in ev&&typeof ev.key!="undefined"){return ev.key}var c=ev.charCode||ev.keyCode;if(c==27){return"Escape"}return String.fromCharCode(c)}var THEME_PICKER_ELEMENT_ID="theme-picker";var THEMES_ELEMENT_ID="theme-choices";function getThemesElement(){return document.getElementById(THEMES_ELEMENT_ID)}function getThemePickerElement(){return document.getElementById(THEME_PICKER_ELEMENT_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function showThemeButtonState(){var themePicker=getThemePickerElement();var themeChoices=getThemesElement();themeChoices.style.display="block";themePicker.style.borderBottomRightRadius="0";themePicker.style.borderBottomLeftRadius="0"}function hideThemeButtonState(){var themePicker=getThemePickerElement();var themeChoices=getThemesElement();themeChoices.style.display="none";themePicker.style.borderBottomRightRadius="3px";themePicker.style.borderBottomLeftRadius="3px"}(function(){var themeChoices=getThemesElement();var themePicker=getThemePickerElement();var availableThemes=["ayu","dark","light"];function switchThemeButtonState(){if(themeChoices.style.display==="block"){hideThemeButtonState()}else{showThemeButtonState()}}function handleThemeButtonsBlur(e){var active=document.activeElement;var related=e.relatedTarget;if(active.id!==THEME_PICKER_ELEMENT_ID&&(!active.parentNode||active.parentNode.id!==THEMES_ELEMENT_ID)&&(!related||(related.id!==THEME_PICKER_ELEMENT_ID&&(!related.parentNode||related.parentNode.id!==THEMES_ELEMENT_ID)))){hideThemeButtonState()}}themePicker.onclick=switchThemeButtonState;themePicker.onblur=handleThemeButtonsBlur;availableThemes.forEach(function(item){var but=document.createElement("button");but.textContent=item;but.onclick=function(){switchTheme(window.currentTheme,window.mainTheme,item,true);useSystemTheme(false)};but.onblur=handleThemeButtonsBlur;themeChoices.appendChild(but)})}());(function(){"use strict";window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:function(){return document.getElementById("search")},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:function(){if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},focus:function(){searchState.input.focus()},defocus:function(){searchState.input.blur()},showResults:function(search){if(search===null||typeof search==='undefined'){search=searchState.outputElement()}addClass(main,"hidden");removeClass(search,"hidden");searchState.mouseMovedAfterSearch=false;document.title=searchState.title},hideResults:function(search){if(search===null||typeof search==='undefined'){search=searchState.outputElement()}addClass(search,"hidden");removeClass(main,"hidden");document.title=searchState.titleBeforeSearch;if(searchState.browserSupportsHistoryApi()){history.replaceState("",window.currentCrate+" - Rust",getNakedUrl()+window.location.hash)}},getQueryStringParams:function(){var params={};window.location.search.substring(1).split("&").map(function(s){var pair=s.split("=");params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},putBackSearch:function(search_input){var search=searchState.outputElement();if(search_input.value!==""&&hasClass(search,"hidden")){searchState.showResults(search);if(searchState.browserSupportsHistoryApi()){var extra="?search="+encodeURIComponent(search_input.value);history.replaceState(search_input.value,"",getNakedUrl()+extra+window.location.hash)}document.title=searchState.title}},browserSupportsHistoryApi:function(){return window.history&&typeof window.history.pushState==="function"},setup:function(){var search_input=searchState.input;if(!searchState.input){return}function loadScript(url){var script=document.createElement('script');script.src=url;document.head.append(script)}var searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(window.searchJS);loadScript(window.searchIndexJS)}}search_input.addEventListener("focus",function(){searchState.putBackSearch(this);search_input.origPlaceholder=searchState.input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});search_input.addEventListener("blur",function(){search_input.placeholder=searchState.input.origPlaceholder});search_input.removeAttribute('disabled');searchState.addCrateDropdown(window.ALL_CRATES);var params=searchState.getQueryStringParams();if(params.search!==undefined){var search=searchState.outputElement();search.innerHTML=""+code.outerHTML+" |
fn:
) to \
restrict the search to a given item kind.","Accepted kinds are: fn
, mod
, struct
, \
enum
, trait
, type
, macro
, \
and const
.","Search functions by type signature (e.g., vec -> usize
or \
* -> vec
)","Search multiple things at once by splitting your query with comma (e.g., \
str,u8
or String,struct:Vec,test
)","You can look for items with an exact name by putting double quotes around \
- your request: \"string\"
","Look for items inside another one by searching for a path: vec::Vec
",].map(function(x){return""+x+"
"}).join("");var div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="\"string\"
","Look for items inside another one by searching for a path: vec::Vec
",].map(function(x){return""+x+"
"}).join("");var div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="pub(crate) async fn index(msg: ProtoBuf<MyObj>) -> Result<HttpResponse>
pub(crate) fn main() -> Result<()>
MyObj |
index | |
main |
number: i32
name: String
impl Clone for MyObj
[src]impl Debug for MyObj
[src]impl Default for MyObj
[src]impl Message for MyObj
[src]fn encode_raw<B>(&self, buf: &mut B) where
B: BufMut,
[src]fn merge_field<B>(
&mut self,
tag: u32,
wire_type: WireType,
buf: &mut B,
ctx: DecodeContext
) -> Result<(), DecodeError> where
B: Buf,
[src]fn encoded_len(&self) -> usize
[src]fn clear(&mut self)
[src]pub fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut,
[src]pub fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut,
[src]pub fn decode<B>(buf: B) -> Result<Self, DecodeError> where
Self: Default,
B: Buf,
[src]pub fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError> where
Self: Default,
B: Buf,
[src]pub fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: Buf,
[src]pub fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: Buf,
[src]impl PartialEq<MyObj> for MyObj
[src]impl StructuralPartialEq for MyObj
[src]impl RefUnwindSafe for MyObj
impl Send for MyObj
impl Sync for MyObj
impl Unpin for MyObj
impl UnwindSafe for MyObj
impl<T> Any for T where
T: 'static + ?Sized,
[src]impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]impl<T> From<T> for T
[src]impl<T> Instrument for T
[src]pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]pub fn in_current_span(self) -> Instrumented<Self>
[src]impl<T, U> Into<U> for T where
U: From<T>,
[src]impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
The resulting type after obtaining ownership.
-pub fn to_owned(&self) -> T
[src]pub fn clone_into(&self, target: &mut T)
[src]impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
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 …","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 …","","","","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]],[[]],[[["serviceresponse",3],["option",4],["string",3],["bool",15]]],[[["serviceresponse",3],["option",4],["string",3],["bool",15]]],[[],["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],"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"],"q":["actix_protobuf","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"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],"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]],[[]],[[]],[[]],[[]],[[["protobufdecodeerror",3]],["protobufpayloaderror",4]],[[["payloaderror",4]],["protobufpayloaderror",4]],[[["payload",4],["httprequest",3]]],[[]],[[]],[[]],[[]],[[]],[[["usize",15]]],[[["usize",15]]],[[["payload",4],["httprequest",3]]],[[["pin",3],["context",3]],["poll",4]],[[["message",8]],[["error",3],["result",4],["httpresponse",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]],[[]],[[]],[[]],[[]]],"p":[[3,"ProtoBuf"],[4,"ProtoBufPayloadError"],[3,"ProtoBufConfig"],[3,"ProtoBufMessage"],[8,"ProtoBufResponseBuilder"]]},\
-"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],"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"],"q":["actix_redis","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"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 …","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 …","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
…","Returns true
if self
is SameSite::Strict
and false
…","","Create new redis session backend","","Push item to Resp array","","","","Start new Supervisor
with RedisActor
.","","","","","","","","","","","","","","","","","","","","","Set time to live in seconds for session value.","","","","","","","","","","","","","",""],"i":[1,2,2,0,3,4,0,2,3,2,3,5,2,5,4,3,4,0,0,3,0,0,0,2,5,3,2,6,7,1,4,2,3,5,6,7,1,4,2,3,5,7,2,5,2,5,7,7,7,7,7,7,7,2,5,2,5,6,1,4,4,2,3,3,5,5,6,7,1,4,4,2,2,2,2,2,2,2,2,3,3,3,5,2,5,6,6,5,6,7,1,4,2,3,5,5,5,5,2,7,7,2,6,4,3,6,6,2,5,4,3,5,6,7,1,4,2,3,5,6,7,1,4,2,3,5,7,6,7,1,4,2,3,5,6,7,1,4,2,3,5],"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]],[["error",3],["result",4]]],[[["formatter",3]],[["error",3],["result",4]]],[[["formatter",3]],[["error",3],["result",4]]],[[["formatter",3]],[["error",3],["result",4]]],[[["formatter",3]],[["error",3],["result",4]]],[[]],[[]],[[]],[[]],[[["error",4]],["error",4]],[[["string",3]],["respvalue",4]],[[["str",15]],["respvalue",4]],[[],["respvalue",4]],[[["str",15],["arc",3]],["respvalue",4]],[[["string",3]],["respvalue",4]],[[["vec",3],["global",3],["u8",15]],["respvalue",4]],[[["usize",15]],["respvalue",4]],[[]],[[["error",3]],["error",4]],[[["trysenderror",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]],[[]],[[]],[[]],[[],[["error",8],["option",4]]],[[],[["error",8],["option",4]]],[[["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]],[[]],[[]],[[]],[[]],[[]],[[]],[[]]],"p":[[3,"Command"],[4,"RespValue"],[4,"RespError"],[4,"Error"],[4,"SameSite"],[3,"RedisActor"],[3,"RedisSession"]]},\
-"actix_session":{"doc":"Sessions for Actix Web.","t":[13,3,13,13,3,4,13,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["Changed","CookieSession","Purged","Renewed","Session","SessionStatus","Unchanged","UserSession","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clear","clone","clone_into","default","domain","entries","eq","expires_in","expires_in_time","fmt","from","from","from","from_request","get","get_changes","get_session","http_only","insert","into","into","into","lazy","max_age","max_age_time","name","new_transform","path","private","purge","remove","remove_as","renew","same_site","secure","set_session","signed","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip"],"q":["actix_session","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Session has been updated and requires a new persist …","Use cookies for session storage.","Session is flagged for deletion and should be removed …","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 …","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 …","Sets the secure
field in the session cookie being built.","Adds the given key-value pairs to the session on the …","Construct new signed CookieSession
instance.","","","","","","","","","","","","",""],"i":[1,0,1,1,0,0,1,0,2,3,1,2,3,1,3,1,1,1,2,3,1,2,2,1,2,3,1,3,3,3,4,2,3,2,3,1,2,2,2,2,2,2,2,3,3,3,3,2,2,3,2,1,2,3,1,2,3,1,2,3,1,2,3,1],"f":[null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["sessionstatus",4]],[[]],[[],["sessionstatus",4]],[[["into",8],["string",3]],["cookiesession",3]],[[],[["hashmap",3],["ref",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],["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]]],[[]],[[["samesite",4]],["cookiesession",3]],[[["bool",15]],["cookiesession",3]],[[["servicerequest",3]]],[[],["cookiesession",3]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]]],"p":[[4,"SessionStatus"],[3,"CookieSession"],[3,"Session"],[8,"UserSession"]]},\
-"actix_web_httpauth":{"doc":"HTTP authentication schemes for actix-web.","t":[0,0,0,8,8,3,16,16,16,0,0,11,11,11,11,11,11,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,4,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,3,13,3,3,13,13,13,4,8,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,8,3,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,4,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["extractors","headers","middleware","AuthExtractor","AuthExtractorConfig","AuthenticationError","Error","Future","Inner","basic","bearer","borrow","borrow_mut","challenge_mut","error_response","fmt","fmt","from","from","from_service_request","into","into_inner","new","status_code","status_code_mut","to_string","try_from","try_into","type_id","vzip","with_error","with_error_description","with_error_uri","BasicAuth","Config","as_ref","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","default","fmt","fmt","from","from","from_request","from_service_request","into","into","into_inner","password","realm","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","user_id","vzip","vzip","BearerAuth","Config","Error","InsufficientScope","InvalidRequest","InvalidToken","as_ref","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","default","eq","equivalent","fmt","fmt","fmt","fmt","from","from","from","from_request","from_service_request","get_hash","hash","into","into","into","into_inner","partial_cmp","realm","scope","status_code","to_owned","to_owned","to_owned","to_string","token","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","authorization","www_authenticate","Authorization","Base64DecodeError","Basic","Bearer","Invalid","MissingField","MissingScheme","ParseError","Scheme","ToStrError","Utf8Error","as_mut","as_ref","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","cmp","default","eq","eq","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","get_hash","hash","into","into","into","into","into_scheme","name","ne","ne","ne","new","new","parse","parse","parse","parse","partial_cmp","partial_cmp","partial_cmp","password","source","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","token","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into_header_pair","try_into_value","try_into_value","try_into_value","type_id","type_id","type_id","type_id","user_id","vzip","vzip","vzip","vzip","0","Challenge","WwwAuthenticate","basic","bearer","borrow","borrow_mut","clone","clone_into","cmp","default","eq","equivalent","fmt","from","get_hash","hash","into","name","ne","parse","partial_cmp","to_bytes","to_owned","try_from","try_into","try_into_header_pair","try_into_value","type_id","vzip","Basic","borrow","borrow_mut","clone","clone_into","cmp","default","eq","equivalent","fmt","fmt","from","get_hash","hash","into","ne","new","partial_cmp","to_owned","to_string","try_from","try_into","try_into_value","type_id","vzip","with_realm","Bearer","BearerBuilder","Error","InsufficientScope","InvalidRequest","InvalidToken","borrow","borrow","borrow_mut","borrow_mut","build","clone","clone_into","cmp","default","default","eq","equivalent","error","error_description","error_uri","finish","fmt","fmt","fmt","from","from","get_hash","hash","into","into","ne","partial_cmp","realm","scope","to_owned","to_string","try_from","try_from","try_into","try_into","try_into_value","type_id","type_id","vzip","vzip","HttpAuthentication","basic","bearer","borrow","borrow_mut","clone","clone_into","fmt","from","into","new_transform","to_owned","try_from","try_into","type_id","vzip","with_fn"],"q":["actix_web_httpauth","","","actix_web_httpauth::extractors","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::extractors::basic","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::extractors::bearer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::headers","","actix_web_httpauth::headers::authorization","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::headers::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 …","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 …","","","","","","","","","","","","","","","","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,0,0,0,0,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,6,6,6,17,18,17,18,18,18,18,18,17,18,18,18,17,17,17,17,17,18,18,17,18,18,18,17,18,18,18,17,17,18,18,17,18,17,18,18,17,18,17,18,0,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19],"f":[null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[],["httpresponse",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[["servicerequest",3]]],[[]],[[]],[[],["authenticationerror",3]],[[],["statuscode",3]],[[],["statuscode",3]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],[[["error",4]]],[[]],[[]],null,null,[[],["challenge",3]],[[]],[[]],[[]],[[]],[[],["config",3]],[[],["basicauth",3]],[[]],[[]],[[],["config",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[["httprequest",3],["payload",4]]],[[["servicerequest",3]]],[[]],[[]],[[]],[[],[["cow",4],["option",4]]],[[],["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]]],[[["cow",4],["into",8]],["config",3]],[[["cow",4],["into",8]],["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]],[[]],[[["utf8error",3]]],[[["decodeerror",4]]],[[["tostrerror",3]]],[[]],[[]],[[],["authorization",3]],[[]],[[]],[[],["u64",15]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["headername",3]],[[["authorization",3]],["bool",15]],[[["basic",3]],["bool",15]],[[["bearer",3]],["bool",15]],[[["option",4]],["basic",3]],[[],["bearer",3]],[[["headervalue",3]],[["parseerror",4],["result",4]]],[[],[["result",4],["parseerror",4]]],[[["headervalue",3]],[["parseerror",4],["result",4]]],[[["headervalue",3]],[["parseerror",4],["result",4]]],[[["authorization",3]],[["option",4],["ordering",4]]],[[["basic",3]],[["option",4],["ordering",4]]],[[["bearer",3]],[["option",4],["ordering",4]]],[[],[["cow",4],["option",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,[[]],[[]],[[],["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"],[3,"WwwAuthenticate"],[8,"Challenge"],[3,"Basic"],[3,"BearerBuilder"],[3,"Bearer"],[3,"HttpAuthentication"]]},\
-"prost_example":{"doc":"","t":[3,11,11,11,11,11,11,11,11,11,11,11,5,11,5,11,12,11,12,11,11,11,11,11],"n":["MyObj","borrow","borrow_mut","clear","clone","clone_into","default","encode_raw","encoded_len","eq","fmt","from","index","into","main","merge_field","name","ne","number","to_owned","try_from","try_into","type_id","vzip"],"q":["prost_example","","","","","","","","","","","","","","","","","","","","","","",""],"d":["","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1],"f":[null,[[]],[[]],[[]],[[],["myobj",3]],[[]],[[]],[[]],[[],["usize",15]],[[["myobj",3]],["bool",15]],[[["formatter",3]],["result",6]],[[]],[[["protobuf",3],["myobj",3]]],[[]],[[],["result",6]],[[["u32",15],["decodecontext",3],["wiretype",4]],[["result",4],["decodeerror",3]]],null,[[["myobj",3]],["bool",15]],null,[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]]],"p":[[3,"MyObj"]]}\
+"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 …","","","","Accepts only users who authenticated within the given …","Sets the Max-Age
attribute of issued cookies.","Sets the Max-Age
attribute of issued cookies with given …","Sets the name of issued cookies.","Create new CookieIdentityPolicy
instance.","Create new identity service with specified backend.","","Sets the Path
attribute of issued cookies.","Remember identity.","Sets the SameSite
attribute of issued cookies.","Sets the Secure
attribute of issued cookies.","","Write changes to response","","","","","","","","","","","Accepts only users who have visited within given deadline.","","",""],"i":[0,1,0,0,0,0,1,2,3,4,2,3,4,4,4,2,4,2,3,4,1,2,4,5,2,4,2,3,4,2,2,2,2,2,3,3,2,4,2,2,4,1,2,2,3,4,2,3,4,2,3,4,2,2,3,4],"f":[null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["identity",3]],[[]],[[],["cookieidentitypolicy",3]],[[]],[[]],[[]],[[]],[[["servicerequest",3]]],[[["servicerequest",3]]],[[["payload",4],["httprequest",3]]],[[],[["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]],[[]],[[["serviceresponse",3],["option",4],["bool",15],["string",3]]],[[["serviceresponse",3],["option",4],["bool",15],["string",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],"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"],"q":["actix_protobuf","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"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],"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]],[["httpresponse",3],["error",3],["result",4]]],[[["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]],[[]],[[]],[[]],[[]]],"p":[[3,"ProtoBuf"],[4,"ProtoBufPayloadError"],[3,"ProtoBufConfig"],[3,"ProtoBufMessage"],[8,"ProtoBufResponseBuilder"]]},\
+"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],"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"],"q":["actix_redis","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"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 …","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 …","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
…","Returns true
if self
is SameSite::Strict
and false
…","","Create new redis session backend","","Push item to Resp array","","","","Start new Supervisor
with RedisActor
.","","","","","","","","","","","","","","","","","","","","","Set time to live in seconds for session value.","","","","","","","","","","","","","",""],"i":[1,2,2,0,3,4,0,2,3,2,3,5,2,5,4,3,4,0,0,3,0,0,0,2,5,3,2,6,7,1,4,2,3,5,6,7,1,4,2,3,5,7,2,5,2,5,7,7,7,7,7,7,7,2,5,2,5,6,1,4,4,2,3,3,5,5,6,7,1,4,4,2,2,2,2,2,2,2,2,3,3,3,5,2,5,6,6,5,6,7,1,4,2,3,5,5,5,5,2,7,7,2,6,4,3,6,6,2,5,4,3,5,6,7,1,4,2,3,5,6,7,1,4,2,3,5,7,6,7,1,4,2,3,5,6,7,1,4,2,3,5],"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]],[[["arc",3],["str",15]],["respvalue",4]],[[["usize",15]],["respvalue",4]],[[["str",15]],["respvalue",4]],[[]],[[["u8",15],["global",3],["vec",3]],["respvalue",4]],[[],["respvalue",4]],[[]],[[["error",3]],["error",4]],[[["trysenderror",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]],[[["string",3],["into",8]],["redissession",3]],[[]],[[]],[[]],[[],[["option",4],["error",8]]],[[],[["option",4],["error",8]]],[[["string",3],["into",8]],[["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]],[[]],[[]],[[]],[[]],[[]],[[]],[[]]],"p":[[3,"Command"],[4,"RespValue"],[4,"RespError"],[4,"Error"],[4,"SameSite"],[3,"RedisActor"],[3,"RedisSession"]]},\
+"actix_session":{"doc":"Sessions for Actix Web.","t":[13,3,13,13,3,4,13,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["Changed","CookieSession","Purged","Renewed","Session","SessionStatus","Unchanged","UserSession","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clear","clone","clone_into","default","domain","entries","eq","expires_in","expires_in_time","fmt","from","from","from","from_request","get","get_changes","get_session","http_only","insert","into","into","into","lazy","max_age","max_age_time","name","new_transform","path","private","purge","remove","remove_as","renew","same_site","secure","set_session","signed","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip"],"q":["actix_session","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Session has been updated and requires a new persist …","Use cookies for session storage.","Session is flagged for deletion and should be removed …","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 …","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 …","Sets the secure
field in the session cookie being built.","Adds the given key-value pairs to the session on the …","Construct new signed CookieSession
instance.","","","","","","","","","","","","",""],"i":[1,0,1,1,0,0,1,0,2,3,1,2,3,1,3,1,1,1,2,3,1,2,2,1,2,3,1,3,3,3,4,2,3,2,3,1,2,2,2,2,2,2,2,3,3,3,3,2,2,3,2,1,2,3,1,2,3,1,2,3,1,2,3,1],"f":[null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["sessionstatus",4]],[[]],[[],["sessionstatus",4]],[[["string",3],["into",8]],["cookiesession",3]],[[],[["ref",3],["hashmap",3]]],[[["sessionstatus",4]],["bool",15]],[[["i64",15]],["cookiesession",3]],[[["duration",3]],["cookiesession",3]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[["httprequest",3],["payload",4]]],[[["str",15]],[["error",3],["option",4],["result",4]]],[[["serviceresponse",3]]],[[],["session",3]],[[["bool",15]],["cookiesession",3]],[[],[["result",4],["error",3]]],[[]],[[]],[[]],[[["bool",15]],["cookiesession",3]],[[["i64",15]],["cookiesession",3]],[[["duration",3]],["cookiesession",3]],[[["string",3],["into",8]],["cookiesession",3]],[[]],[[["string",3],["into",8]],["cookiesession",3]],[[],["cookiesession",3]],[[]],[[["str",15]],[["option",4],["string",3]]],[[["str",15]],[["result",4],["option",4]]],[[]],[[["samesite",4]],["cookiesession",3]],[[["bool",15]],["cookiesession",3]],[[["servicerequest",3]]],[[],["cookiesession",3]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]]],"p":[[4,"SessionStatus"],[3,"CookieSession"],[3,"Session"],[8,"UserSession"]]},\
+"actix_web_httpauth":{"doc":"HTTP authentication schemes for actix-web.","t":[0,0,0,8,8,3,16,16,16,0,0,11,11,11,11,11,11,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,4,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,3,13,3,3,13,13,13,4,8,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,8,3,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,4,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["extractors","headers","middleware","AuthExtractor","AuthExtractorConfig","AuthenticationError","Error","Future","Inner","basic","bearer","borrow","borrow_mut","challenge_mut","error_response","fmt","fmt","from","from","from_service_request","into","into_inner","new","status_code","status_code_mut","to_string","try_from","try_into","type_id","vzip","with_error","with_error_description","with_error_uri","BasicAuth","Config","as_ref","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","default","fmt","fmt","from","from","from_request","from_service_request","into","into","into_inner","password","realm","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","user_id","vzip","vzip","BearerAuth","Config","Error","InsufficientScope","InvalidRequest","InvalidToken","as_ref","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","default","eq","equivalent","fmt","fmt","fmt","fmt","from","from","from","from_request","from_service_request","get_hash","hash","into","into","into","into_inner","partial_cmp","realm","scope","status_code","to_owned","to_owned","to_owned","to_string","token","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","authorization","www_authenticate","Authorization","Base64DecodeError","Basic","Bearer","Invalid","MissingField","MissingScheme","ParseError","Scheme","ToStrError","Utf8Error","as_mut","as_ref","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","cmp","default","eq","eq","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","get_hash","hash","into","into","into","into","into_scheme","name","ne","ne","ne","new","new","parse","parse","parse","parse","partial_cmp","partial_cmp","partial_cmp","password","source","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","token","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into_header_pair","try_into_value","try_into_value","try_into_value","type_id","type_id","type_id","type_id","user_id","vzip","vzip","vzip","vzip","0","Challenge","WwwAuthenticate","basic","bearer","borrow","borrow_mut","clone","clone_into","cmp","default","eq","equivalent","fmt","from","get_hash","hash","into","name","ne","parse","partial_cmp","to_bytes","to_owned","try_from","try_into","try_into_header_pair","try_into_value","type_id","vzip","Basic","borrow","borrow_mut","clone","clone_into","cmp","default","eq","equivalent","fmt","fmt","from","get_hash","hash","into","ne","new","partial_cmp","to_owned","to_string","try_from","try_into","try_into_value","type_id","vzip","with_realm","Bearer","BearerBuilder","Error","InsufficientScope","InvalidRequest","InvalidToken","borrow","borrow","borrow_mut","borrow_mut","build","clone","clone_into","cmp","default","default","eq","equivalent","error","error_description","error_uri","finish","fmt","fmt","fmt","from","from","get_hash","hash","into","into","ne","partial_cmp","realm","scope","to_owned","to_string","try_from","try_from","try_into","try_into","try_into_value","type_id","type_id","vzip","vzip","HttpAuthentication","basic","bearer","borrow","borrow_mut","clone","clone_into","fmt","from","into","new_transform","to_owned","try_from","try_into","type_id","vzip","with_fn"],"q":["actix_web_httpauth","","","actix_web_httpauth::extractors","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::extractors::basic","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::extractors::bearer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::headers","","actix_web_httpauth::headers::authorization","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web_httpauth::headers::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 …","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 …","","","","","","","","","","","","","","","","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,0,0,0,0,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,6,6,6,17,18,17,18,18,18,18,18,17,18,18,18,17,17,17,17,17,18,18,17,18,18,18,17,18,18,18,17,17,18,18,17,18,17,18,18,17,18,17,18,0,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19],"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]],["config",3]],[[["into",8],["cow",4]],["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]],[[]],[[["utf8error",3]]],[[["decodeerror",4]]],[[["tostrerror",3]]],[[]],[[]],[[],["authorization",3]],[[]],[[]],[[],["u64",15]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["headername",3]],[[["authorization",3]],["bool",15]],[[["basic",3]],["bool",15]],[[["bearer",3]],["bool",15]],[[["option",4]],["basic",3]],[[],["bearer",3]],[[["headervalue",3]],[["result",4],["parseerror",4]]],[[],[["parseerror",4],["result",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]]],[[],[["error",8],["option",4]]],[[]],[[]],[[]],[[],["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]]],[[],[["headervalue",3],["result",4]]],[[],[["headervalue",3],["result",4]]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["cow",4]],[[]],[[]],[[]],[[]],null,null,null,null,null,[[]],[[]],[[],["wwwauthenticate",3]],[[]],[[["wwwauthenticate",3]],["ordering",4]],[[],["wwwauthenticate",3]],[[["wwwauthenticate",3]],["bool",15]],[[],["bool",15]],[[["formatter",3]],["result",6]],[[]],[[],["u64",15]],[[]],[[]],[[],["headername",3]],[[["wwwauthenticate",3]],["bool",15]],[[],[["parseerror",4],["result",4]]],[[["wwwauthenticate",3]],[["option",4],["ordering",4]]],[[],["bytes",3]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],[["headervalue",3],["result",4]]],[[],["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"],[3,"WwwAuthenticate"],[8,"Challenge"],[3,"Basic"],[3,"BearerBuilder"],[3,"Bearer"],[3,"HttpAuthentication"]]}\
}');
-initSearch(searchIndex);
\ No newline at end of file
+if (window.initSearch) {window.initSearch(searchIndex)};
\ No newline at end of file
diff --git a/search.js b/search.js
new file mode 100644
index 000000000..ac9c29041
--- /dev/null
+++ b/search.js
@@ -0,0 +1 @@
+(function(){var itemTypes=["mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","primitive","associatedtype","constant","associatedconstant","union","foreigntype","keyword","existential","attr","derive","traitalias"];var TY_PRIMITIVE=itemTypes.indexOf("primitive");var TY_KEYWORD=itemTypes.indexOf("keyword");function printTab(nb){if(nb===0||nb===1||nb===2){searchState.currentTab=nb}var nb_copy=nb;onEachLazy(document.getElementById("titles").childNodes,function(elem){if(nb_copy===0){addClass(elem,"selected")}else{removeClass(elem,"selected")}nb_copy-=1});onEachLazy(document.getElementById("results").childNodes,function(elem){if(nb===0){addClass(elem,"active")}else{removeClass(elem,"active")}nb-=1})}function removeEmptyStringsFromArray(x){for(var i=0,len=x.length;i1 +all_or_some.rs - source 1 2 3 4 @@ -54,7 +53,7 @@ 53 54 55 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_cors/builder.rs.html b/src/actix_cors/builder.rs.html index 3bf81d418..71ea23b4f 100644 --- a/src/actix_cors/builder.rs.html +++ b/src/actix_cors/builder.rs.html @@ -1,5 +1,4 @@ -+/// An enum signifying that some of type `T` is allowed, or `All` (anything is allowed). #[derive(Clone, Debug, PartialEq, Eq)] pub enum AllOrSome<T> { @@ -111,5 +110,6 @@ assert!(AllOrSome::Some(()).is_some()); }builder.rs - source 1 +builder.rs - source 1 2 3 4 @@ -624,8 +623,7 @@ 623 624 625 -626 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_cors/error.rs.html b/src/actix_cors/error.rs.html index 2be70d4a0..7bc0c04c4 100644 --- a/src/actix_cors/error.rs.html +++ b/src/actix_cors/error.rs.html @@ -1,5 +1,4 @@ -+use std::{collections::HashSet, convert::TryInto, iter::FromIterator, rc::Rc}; use actix_web::{ @@ -637,7 +635,7 @@ use futures_util::future::{self, Ready}; use log::error; use once_cell::sync::Lazy; -use tinyvec::tiny_vec; +use smallvec::smallvec; use crate::{AllOrSome, CorsError, CorsMiddleware, Inner, OriginFn}; @@ -710,7 +708,7 @@ pub fn permissive() -> Self { let inner = Inner { allowed_origins: AllOrSome::All, - allowed_origins_fns: tiny_vec![], + allowed_origins_fns: smallvec![], allowed_methods: ALL_METHODS_SET.clone(), allowed_methods_baked: None, @@ -1086,7 +1084,7 @@ fn default() -> Cors { let inner = Inner { allowed_origins: AllOrSome::Some(HashSet::with_capacity(8)), - allowed_origins_fns: tiny_vec![], + allowed_origins_fns: smallvec![], allowed_methods: HashSet::with_capacity(8), allowed_methods_baked: None, @@ -1111,13 +1109,12 @@ } } -impl<S, B> Transform<S, ServiceRequest> for Cors +impl<S> Transform<S, ServiceRequest> for Cors where - S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error>, + S: Service<ServiceRequest, Response = ServiceResponse, Error = Error>, S::Future: 'static, - B: 'static, { - type Response = ServiceResponse<B>; + type Response = ServiceResponse; type Error = Error; type InitError = (); type Transform = CorsMiddleware<S>; @@ -1253,5 +1250,6 @@ } }error.rs - source 1 +error.rs - source 1 2 3 4 @@ -55,7 +54,7 @@ 54 55 56 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_cors/inner.rs.html b/src/actix_cors/inner.rs.html index 37ac5b870..e69e83f1d 100644 --- a/src/actix_cors/inner.rs.html +++ b/src/actix_cors/inner.rs.html @@ -1,5 +1,4 @@ -+use actix_web::{http::StatusCode, HttpResponse, ResponseError}; use derive_more::{Display, Error}; @@ -113,5 +112,6 @@ } }inner.rs - source 1 +inner.rs - source 1 2 3 4 @@ -337,7 +336,7 @@ 336 337 338 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_cors/lib.rs.html b/src/actix_cors/lib.rs.html index 132d5d21f..7d98606ab 100644 --- a/src/actix_cors/lib.rs.html +++ b/src/actix_cors/lib.rs.html @@ -1,5 +1,4 @@ -+use std::{collections::HashSet, convert::TryFrom, convert::TryInto, fmt, rc::Rc}; use actix_web::{ @@ -349,7 +348,7 @@ }, }; use once_cell::sync::Lazy; -use tinyvec::TinyVec; +use smallvec::SmallVec; use crate::{AllOrSome, CorsError}; @@ -382,7 +381,7 @@ #[derive(Debug, Clone)] pub(crate) struct Inner { pub(crate) allowed_origins: AllOrSome<HashSet<HeaderValue>>, - pub(crate) allowed_origins_fns: TinyVec<[OriginFn; 4]>, + pub(crate) allowed_origins_fns: SmallVec<[OriginFn; 4]>, pub(crate) allowed_methods: HashSet<Method>, pub(crate) allowed_methods_baked: Option<HeaderValue>, @@ -677,5 +676,6 @@ } }lib.rs - source 1 +lib.rs - source 1 2 3 4 @@ -59,7 +58,7 @@ 58 59 60 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_cors/middleware.rs.html b/src/actix_cors/middleware.rs.html index 2f31919d5..0a34e7670 100644 --- a/src/actix_cors/middleware.rs.html +++ b/src/actix_cors/middleware.rs.html @@ -1,5 +1,4 @@ -+//! Cross-Origin Resource Sharing (CORS) controls for Actix Web. //! //! This middleware can be applied to both applications and resources. Once built, a @@ -121,5 +120,6 @@ use inner::{Inner, OriginFn}; pub use middleware::CorsMiddleware;middleware.rs - source 1 +middleware.rs - source 1 2 3 4 @@ -216,10 +215,15 @@ 215 216 217 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_identity/cookie.rs.html b/src/actix_identity/cookie.rs.html index 2da5e1f9d..2bd67e7d3 100644 --- a/src/actix_identity/cookie.rs.html +++ b/src/actix_identity/cookie.rs.html @@ -1,7 +1,4 @@ --use std::{convert::TryInto, rc::Rc}; +218 +219 +220 +221 ++use std::{convert::TryInto, error::Error as StdError, rc::Rc}; use actix_web::{ + body::{AnyBody, MessageBody}, dev::{Service, ServiceRequest, ServiceResponse}, error::{Error, Result}, http::{ @@ -228,7 +232,9 @@ }, HttpResponse, }; -use futures_util::future::{ok, Either, FutureExt as _, LocalBoxFuture, Ready}; +use futures_util::future::{ + ok, Either, FutureExt as _, LocalBoxFuture, Ready, TryFutureExt as _, +}; use log::debug; use crate::Inner; @@ -245,7 +251,7 @@ } impl<S> CorsMiddleware<S> { - fn handle_preflight<B>(inner: &Inner, req: ServiceRequest) -> ServiceResponse<B> { + fn handle_preflight(inner: &Inner, req: ServiceRequest) -> ServiceResponse { if let Err(err) = inner .validate_origin(req.head()) .and_then(|_| inner.validate_allowed_method(req.head())) @@ -288,7 +294,6 @@ } let res = res.finish(); - let res = res.into_body(); req.into_response(res) } @@ -331,20 +336,21 @@ } } -type CorsMiddlewareServiceFuture<B> = Either< - Ready<Result<ServiceResponse<B>, Error>>, - LocalBoxFuture<'static, Result<ServiceResponse<B>, Error>>, +type CorsMiddlewareServiceFuture = Either< + Ready<Result<ServiceResponse, Error>>, + LocalBoxFuture<'static, Result<ServiceResponse, Error>>, >; impl<S, B> Service<ServiceRequest> for CorsMiddleware<S> where S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error>, S::Future: 'static, - B: 'static, + B: MessageBody + 'static, + B::Error: StdError, { - type Response = ServiceResponse<B>; + type Response = ServiceResponse; type Error = Error; - type Future = CorsMiddlewareServiceFuture<B>; + type Future = CorsMiddlewareServiceFuture; actix_service::forward_ready!(service); @@ -377,6 +383,7 @@ res } } + .map_ok(|res| res.map_body(|_, body| AnyBody::from_message(body))) .boxed_local(); Either::Right(res) @@ -435,5 +442,6 @@ } }cookie.rs - source - - 1 +cookie.rs - source 1 2 3 4 @@ -828,7 +825,10 @@ 825 826 827 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_identity/identity.rs.html b/src/actix_identity/identity.rs.html index 8315185e3..d2cf17e52 100644 --- a/src/actix_identity/identity.rs.html +++ b/src/actix_identity/identity.rs.html @@ -1,7 +1,4 @@ -+828 +829 +830 +use std::{rc::Rc, time::SystemTime}; use futures_util::future::{ready, Ready}; @@ -900,16 +900,17 @@ value: Option<CookieValue>, ) -> Result<()> { let add_cookie = value.is_some(); - let val = value.map(|val| { - if !self.legacy_supported() { - serde_json::to_string(&val) - } else { - Ok(val.identity) - } - }); + let val = value + .map(|val| { + if !self.legacy_supported() { + serde_json::to_string(&val) + } else { + Ok(val.identity) + } + }) + .transpose()?; - let mut cookie = - Cookie::new(self.name.clone(), val.unwrap_or_else(|| Ok(String::new()))?); + let mut cookie = Cookie::new(self.name.clone(), val.unwrap_or_default()); cookie.set_path(self.path.clone()); cookie.set_secure(self.secure); cookie.set_http_only(true); @@ -939,10 +940,10 @@ }; if add_cookie { - jar.private(&key).add(cookie); + jar.private_mut(&key).add(cookie); } else { jar.add_original(cookie.clone()); - jar.private(&key).remove(cookie); + jar.private_mut(&key).remove(cookie); } for cookie in jar.delta() { @@ -959,17 +960,19 @@ jar.add_original(cookie.clone()); let res = if self.legacy_supported() { - jar.private(&self.key).get(&self.name).map(|n| CookieValue { - identity: n.value().to_string(), - login_timestamp: None, - visit_timestamp: None, - }) + jar.private_mut(&self.key) + .get(&self.name) + .map(|n| CookieValue { + identity: n.value().to_string(), + login_timestamp: None, + visit_timestamp: None, + }) } else { None }; res.or_else(|| { - jar.private(&self.key_v2) + jar.private_mut(&self.key_v2) .get(&self.name) .and_then(|c| self.parse(c)) }) @@ -1222,7 +1225,7 @@ .copied() .collect(); - jar.private(&Key::derive_from(&key)).add(Cookie::new( + jar.private_mut(&Key::derive_from(&key)).add(Cookie::new( COOKIE_NAME, serde_json::to_string(&CookieValue { identity: identity.to_string(), @@ -1406,7 +1409,7 @@ fn legacy_login_cookie(identity: &'static str) -> Cookie<'static> { let mut jar = CookieJar::new(); - jar.private(&Key::derive_from(&COOKIE_KEY_MASTER)) + jar.private_mut(&Key::derive_from(&COOKIE_KEY_MASTER)) .add(Cookie::new(COOKIE_NAME, identity)); jar.get(COOKIE_NAME).unwrap().clone() } @@ -1423,7 +1426,7 @@ cookies.add(Cookie::parse(cookie.to_str().unwrap().to_string()).unwrap()); } let cookie = cookies - .private(&Key::derive_from(&COOKIE_KEY_MASTER)) + .private_mut(&Key::derive_from(&COOKIE_KEY_MASTER)) .get(COOKIE_NAME) .unwrap(); assert_eq!(cookie.value(), identity); @@ -1657,5 +1660,6 @@ } }identity.rs - source - - 1 +identity.rs - source 1 2 3 4 @@ -102,7 +99,7 @@ 99 100 101 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_identity/lib.rs.html b/src/actix_identity/lib.rs.html index 5ab949239..c39964e72 100644 --- a/src/actix_identity/lib.rs.html +++ b/src/actix_identity/lib.rs.html @@ -1,7 +1,4 @@ -+use actix_web::{ dev::{Extensions, Payload}, Error, FromRequest, HttpRequest, @@ -205,5 +202,6 @@ } }lib.rs - source - - 1 +lib.rs - source 1 2 3 4 @@ -153,7 +150,7 @@ 150 151 152 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_identity/middleware.rs.html b/src/actix_identity/middleware.rs.html index d1ea4d9e2..fc7b76106 100644 --- a/src/actix_identity/middleware.rs.html +++ b/src/actix_identity/middleware.rs.html @@ -1,7 +1,4 @@ -+//! Opinionated request identity service for Actix Web apps. //! //! [`IdentityService`] middleware can be used with different policies types to store @@ -307,5 +304,6 @@ } }middleware.rs - source - - 1 +middleware.rs - source 1 2 3 4 @@ -169,14 +166,25 @@ 166 167 168 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_protobuf/lib.rs.html b/src/actix_protobuf/lib.rs.html index 07142cd6b..73ed36038 100644 --- a/src/actix_protobuf/lib.rs.html +++ b/src/actix_protobuf/lib.rs.html @@ -1,7 +1,4 @@ --use std::rc::Rc; +169 +170 +171 +172 +173 +174 +175 +176 ++use std::{error::Error as StdError, rc::Rc}; use actix_web::{ + body::{AnyBody, MessageBody}, dev::{Service, ServiceRequest, ServiceResponse, Transform}, Error, HttpMessage, Result, }; -use futures_util::future::{ready, FutureExt, LocalBoxFuture, Ready}; +use futures_util::future::{ + ready, FutureExt as _, LocalBoxFuture, Ready, TryFutureExt as _, +}; use crate::{identity::IdentityItem, IdentityPolicy}; @@ -213,9 +221,10 @@ S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static, S::Future: 'static, T: IdentityPolicy, - B: 'static, + B: MessageBody + 'static, + B::Error: StdError, { - type Response = ServiceResponse<B>; + type Response = ServiceResponse; type Error = Error; type InitError = (); type Transform = IdentityServiceMiddleware<S, T>; @@ -245,12 +254,13 @@ impl<S, T, B> Service<ServiceRequest> for IdentityServiceMiddleware<S, T> where - B: 'static, S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static, S::Future: 'static, T: IdentityPolicy, + B: MessageBody + 'static, + B::Error: StdError, { - type Response = ServiceResponse<B>; + type Response = ServiceResponse; type Error = Error; type Future = LocalBoxFuture<'static, Result<Self::Response, Self::Error>>; @@ -272,16 +282,19 @@ if let Some(id) = id { match backend.to_response(id.id, id.changed, &mut res).await { - Ok(_) => Ok(res), + Ok(_) => { + Ok(res.map_body(|_, body| AnyBody::from_message(body))) + } Err(e) => Ok(res.error_response(e)), } } else { - Ok(res) + Ok(res.map_body(|_, body| AnyBody::from_message(body))) } } Err(err) => Ok(req.error_response(err)), } } + .map_ok(|res| res.map_body(|_, body| AnyBody::from_message(body))) .boxed_local() } } @@ -339,5 +352,6 @@ } }lib.rs - source - - 1 +lib.rs - source 1 2 3 4 @@ -325,43 +322,63 @@ 322 323 324 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_redis/lib.rs.html b/src/actix_redis/lib.rs.html index ac43af57e..c132bbe66 100644 --- a/src/actix_redis/lib.rs.html +++ b/src/actix_redis/lib.rs.html @@ -1,7 +1,4 @@ --#![deny(rust_2018_idioms)] +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 ++#![forbid(unsafe_code)] +#![deny(rust_2018_idioms, nonstandard_style)] +use std::{ + fmt, + future::Future, + ops::{Deref, DerefMut}, + pin::Pin, + task::{self, Poll}, +}; + +use actix_web::{ + dev::Payload, + error::PayloadError, + http::header::{CONTENT_LENGTH, CONTENT_TYPE}, + web::BytesMut, + Error, FromRequest, HttpMessage, HttpRequest, HttpResponse, HttpResponseBuilder, + Responder, ResponseError, +}; use derive_more::Display; -use std::fmt; -use std::future::Future; -use std::ops::{Deref, DerefMut}; -use std::pin::Pin; -use std::task; -use std::task::Poll; - -use prost::DecodeError as ProtoBufDecodeError; -use prost::EncodeError as ProtoBufEncodeError; -use prost::Message; - -use actix_web::dev::{HttpResponseBuilder, Payload}; -use actix_web::error::{Error, PayloadError, ResponseError}; -use actix_web::http::header::{CONTENT_LENGTH, CONTENT_TYPE}; -use actix_web::web::BytesMut; -use actix_web::{FromRequest, HttpMessage, HttpRequest, HttpResponse, Responder}; -use futures_util::future::{FutureExt, LocalBoxFuture}; -use futures_util::StreamExt; +use futures_util::{ + future::{FutureExt as _, LocalBoxFuture}, + stream::StreamExt as _, +}; +use prost::{ + DecodeError as ProtoBufDecodeError, EncodeError as ProtoBufEncodeError, Message, +}; #[derive(Debug, Display)] pub enum ProtoBufPayloadError { /// Payload size is bigger than 256k #[display(fmt = "Payload size is bigger than 256k")] Overflow, + /// Content type error #[display(fmt = "Content type error")] ContentType, + /// Serialize error #[display(fmt = "ProtoBuf serialize error: {}", _0)] Serialize(ProtoBufEncodeError), + /// Deserialize error #[display(fmt = "ProtoBuf deserialize error: {}", _0)] Deserialize(ProtoBufDecodeError), + /// Payload error #[display(fmt = "Error that occur during reading payload: {}", _0)] Payload(PayloadError), @@ -651,5 +668,6 @@ } }lib.rs - source - - 1 +lib.rs - source 1 2 3 4 @@ -36,7 +33,7 @@ 33 34 35 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_redis/redis.rs.html b/src/actix_redis/redis.rs.html index 4d45f88dc..461e7f850 100644 --- a/src/actix_redis/redis.rs.html +++ b/src/actix_redis/redis.rs.html @@ -1,7 +1,4 @@ -+//! Redis integration for Actix and session store for Actix Web. #![deny(rust_2018_idioms)] @@ -73,5 +70,6 @@ pub use redis_async::error::Error as RespError; pub use redis_async::resp::RespValue;redis.rs - source - - 1 +redis.rs - source 1 2 3 4 @@ -142,7 +139,7 @@ 139 140 141 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_redis/session.rs.html b/src/actix_redis/session.rs.html index a4c3198c0..c829dfbe9 100644 --- a/src/actix_redis/session.rs.html +++ b/src/actix_redis/session.rs.html @@ -1,7 +1,4 @@ -+use std::collections::VecDeque; use std::io; @@ -285,5 +282,6 @@ } }session.rs - source - - 1 +session.rs - source 1 2 3 4 @@ -707,20 +704,30 @@ 704 705 706 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_session/cookie.rs.html b/src/actix_session/cookie.rs.html index 78c324bce..a32a1bd76 100644 --- a/src/actix_session/cookie.rs.html +++ b/src/actix_session/cookie.rs.html @@ -1,7 +1,4 @@ -+707 +708 +709 +710 +711 +712 +713 +714 +use std::{collections::HashMap, iter, rc::Rc}; use actix::prelude::*; use actix_service::{Service, Transform}; use actix_session::{Session, SessionStatus}; -use actix_web::cookie::{Cookie, CookieJar, Key, SameSite}; -use actix_web::dev::{ServiceRequest, ServiceResponse}; -use actix_web::http::header::{self, HeaderValue}; -use actix_web::{error, Error, HttpMessage}; +use actix_web::{ + cookie::{Cookie, CookieJar, Key, SameSite}, + dev::{ServiceRequest, ServiceResponse}, + error, + http::header::{self, HeaderValue}, + Error, +}; use futures_core::future::LocalBoxFuture; use rand::{distributions::Alphanumeric, rngs::OsRng, Rng}; -use redis_async::resp::RespValue; -use redis_async::resp_array; +use redis_async::{resp::RespValue, resp_array}; use time::{self, Duration, OffsetDateTime}; use crate::redis::{Command, RedisActor}; @@ -1021,7 +1028,7 @@ // set cookie let mut jar = CookieJar::new(); - jar.signed(&self.key).add(cookie); + jar.signed_mut(&self.key).add(cookie); (value, Some(jar)) }; @@ -1031,7 +1038,7 @@ let state: HashMap<_, _> = state.collect(); let body = match serde_json::to_string(&state) { - Err(e) => return Err(e.into()), + Err(err) => return Err(err.into()), Ok(body) => body, }; @@ -1152,12 +1159,15 @@ async fn logout(session: Session) -> Result<HttpResponse> { let id: Option<String> = session.get("user_id")?; - if let Some(x) = id { + + let body = if let Some(x) = id { session.purge(); - Ok(format!("Logged out: {}", x).into()) + format!("Logged out: {}", x) } else { - Ok("Could not log out anonymous user".into()) - } + "Could not log out anonymous user".to_owned() + }; + + Ok(HttpResponse::Ok().body(body)) } #[actix_rt::test] @@ -1358,7 +1368,10 @@ .unwrap(); assert_ne!( OffsetDateTime::now_utc().year(), - cookie_4.expires().map(|t| t.year()).unwrap() + cookie_4 + .expires() + .map(|t| t.datetime().expect("Expiration is a datetime").year()) + .unwrap() ); // Step 10: GET index, including session cookie #2 in request @@ -1415,5 +1428,6 @@ } }cookie.rs - source - - 1 +cookie.rs - source 1 2 3 4 @@ -553,18 +550,34 @@ 550 551 552 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_session/lib.rs.html b/src/actix_session/lib.rs.html index 357f8d8c0..6bec534f4 100644 --- a/src/actix_session/lib.rs.html +++ b/src/actix_session/lib.rs.html @@ -1,7 +1,4 @@ -+553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564 +565 +566 +//! Cookie based sessions. See docs for [`CookieSession`]. -use std::{collections::HashMap, rc::Rc}; +use std::{collections::HashMap, error::Error as StdError, rc::Rc}; -use actix_service::{Service, Transform}; -use actix_web::cookie::{Cookie, CookieJar, Key, SameSite}; -use actix_web::dev::{ServiceRequest, ServiceResponse}; -use actix_web::http::{header::SET_COOKIE, HeaderValue}; -use actix_web::{Error, HttpMessage, ResponseError}; +use actix_web::{ + body::{AnyBody, MessageBody}, + cookie::{Cookie, CookieJar, Key, SameSite}, + dev::{Service, ServiceRequest, ServiceResponse, Transform}, + http::{header::SET_COOKIE, HeaderValue}, + Error, ResponseError, +}; use derive_more::Display; -use futures_util::future::{ok, LocalBoxFuture, Ready}; +use futures_util::future::{ok, FutureExt as _, LocalBoxFuture, Ready}; use serde_json::error::Error as JsonError; use time::{Duration, OffsetDateTime}; @@ -662,8 +675,8 @@ let mut jar = CookieJar::new(); match self.security { - CookieSecurity::Signed => jar.signed(&self.key).add(cookie), - CookieSecurity::Private => jar.private(&self.key).add(cookie), + CookieSecurity::Signed => jar.signed_mut(&self.key).add(cookie), + CookieSecurity::Private => jar.private_mut(&self.key).add(cookie), } for cookie in jar.delta() { @@ -848,13 +861,15 @@ } } -impl<S, B: 'static> Transform<S, ServiceRequest> for CookieSession +impl<S, B> Transform<S, ServiceRequest> for CookieSession where S: Service<ServiceRequest, Response = ServiceResponse<B>>, S::Future: 'static, S::Error: 'static, + B: MessageBody + 'static, + B::Error: StdError, { - type Response = ServiceResponse<B>; + type Response = ServiceResponse; type Error = S::Error; type InitError = (); type Transform = CookieSessionMiddleware<S>; @@ -874,13 +889,15 @@ inner: Rc<CookieSessionInner>, } -impl<S, B: 'static> Service<ServiceRequest> for CookieSessionMiddleware<S> +impl<S, B> Service<ServiceRequest> for CookieSessionMiddleware<S> where S: Service<ServiceRequest, Response = ServiceResponse<B>>, S::Future: 'static, S::Error: 'static, + B: MessageBody + 'static, + B::Error: StdError, { - type Response = ServiceResponse<B>; + type Response = ServiceResponse; type Error = S::Error; type Future = LocalBoxFuture<'static, Result<Self::Response, Self::Error>>; @@ -899,36 +916,40 @@ let fut = self.service.call(req); - Box::pin(async move { + async move { let mut res = fut.await?; - let res = match Session::get_changes(&mut res) { + let result = match Session::get_changes(&mut res) { (SessionStatus::Changed, state) | (SessionStatus::Renewed, state) => { - res.checked_expr(|res| inner.set_cookie(res, state)) + inner.set_cookie(&mut res, state) } (SessionStatus::Unchanged, state) if prolong_expiration => { - res.checked_expr(|res| inner.set_cookie(res, state)) + inner.set_cookie(&mut res, state) } // set a new session cookie upon first request (new client) (SessionStatus::Unchanged, _) => { if is_new { let state: HashMap<String, String> = HashMap::new(); - res.checked_expr(|res| inner.set_cookie(res, state.into_iter())) + inner.set_cookie(&mut res, state.into_iter()) } else { - res + Ok(()) } } (SessionStatus::Purged, _) => { let _ = inner.remove_cookie(&mut res); - res + Ok(()) } }; - Ok(res) - }) + match result { + Ok(()) => Ok(res.map_body(|_, body| AnyBody::from_message(body))), + Err(error) => Ok(res.error_response(error)), + } + } + .boxed_local() } } @@ -1089,7 +1110,9 @@ .find(|c| c.name() == "actix-session") .expect("Cookie is set") .expires() - .expect("Expiration is set"); + .expect("Expiration is set") + .datetime() + .expect("Expiration is a datetime"); actix_rt::time::sleep(std::time::Duration::from_secs(1)).await; @@ -1101,11 +1124,14 @@ .find(|c| c.name() == "actix-session") .expect("Cookie is set") .expires() - .expect("Expiration is set"); + .expect("Expiration is set") + .datetime() + .expect("Expiration is a datetime"); assert!(expires_2 - expires_1 >= Duration::seconds(1)); } }lib.rs - source - - 1 +lib.rs - source 1 2 3 4 @@ -412,7 +409,7 @@ 409 410 411 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/extractors/basic.rs.html b/src/actix_web_httpauth/extractors/basic.rs.html index 670a5dde1..fcf948666 100644 --- a/src/actix_web_httpauth/extractors/basic.rs.html +++ b/src/actix_web_httpauth/extractors/basic.rs.html @@ -1,7 +1,4 @@ -+//! Sessions for Actix Web. //! //! Provides a general solution for session management. Session middleware could provide different @@ -825,5 +822,6 @@ } }basic.rs - source - - 1 +basic.rs - source 1 2 3 4 @@ -153,7 +150,7 @@ 150 151 152 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/extractors/bearer.rs.html b/src/actix_web_httpauth/extractors/bearer.rs.html index e8006477d..557165238 100644 --- a/src/actix_web_httpauth/extractors/bearer.rs.html +++ b/src/actix_web_httpauth/extractors/bearer.rs.html @@ -1,7 +1,4 @@ -+//! Extractor for the "Basic" HTTP Authentication Scheme use std::borrow::Cow; @@ -237,7 +234,7 @@ /// /// fn main() { /// let app = App::new() -/// .data(Config::default().realm("Restricted area")) +/// .app_data(Config::default().realm("Restricted area")) /// .service(web::resource("/index.html").route(web::get().to(index))); /// } /// ``` @@ -307,5 +304,6 @@ } }bearer.rs - source - - 1 +bearer.rs - source 1 2 3 4 @@ -181,7 +178,7 @@ 178 179 180 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/extractors/config.rs.html b/src/actix_web_httpauth/extractors/config.rs.html index 382b6d1c4..2b5f6e3ee 100644 --- a/src/actix_web_httpauth/extractors/config.rs.html +++ b/src/actix_web_httpauth/extractors/config.rs.html @@ -1,7 +1,4 @@ -+//! Extractor for the "Bearer" HTTP Authentication Scheme use std::borrow::Cow; @@ -268,7 +265,7 @@ /// /// fn main() { /// let app = App::new() -/// .data( +/// .app_data( /// Config::default() /// .realm("Restricted area") /// .scope("email photo"), @@ -363,5 +360,6 @@ } }config.rs - source - - 1 +config.rs - source 1 2 3 4 @@ -24,7 +21,7 @@ 21 22 23 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/extractors/errors.rs.html b/src/actix_web_httpauth/extractors/errors.rs.html index 8c6c5ba50..d8a024f33 100644 --- a/src/actix_web_httpauth/extractors/errors.rs.html +++ b/src/actix_web_httpauth/extractors/errors.rs.html @@ -1,7 +1,4 @@ -+use super::AuthenticationError; use crate::headers::www_authenticate::Challenge; @@ -49,5 +46,6 @@ } }errors.rs - source - - 1 +errors.rs - source 1 2 3 4 @@ -83,7 +80,7 @@ 80 81 82 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/extractors/mod.rs.html b/src/actix_web_httpauth/extractors/mod.rs.html index 934e9ef4c..1ae08363b 100644 --- a/src/actix_web_httpauth/extractors/mod.rs.html +++ b/src/actix_web_httpauth/extractors/mod.rs.html @@ -1,7 +1,4 @@ -+use std::error::Error; use std::fmt; @@ -167,5 +164,6 @@ } }mod.rs - source - - 1 +mod.rs - source 1 2 3 4 @@ -34,7 +31,7 @@ 31 32 33 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/headers/authorization/errors.rs.html b/src/actix_web_httpauth/headers/authorization/errors.rs.html index 19e28a204..4f1a4f2a8 100644 --- a/src/actix_web_httpauth/headers/authorization/errors.rs.html +++ b/src/actix_web_httpauth/headers/authorization/errors.rs.html @@ -1,7 +1,4 @@ -+//! Type-safe authentication information extractors use actix_web::dev::ServiceRequest; @@ -69,5 +66,6 @@ fn from_service_request(req: &ServiceRequest) -> Self::Future; }errors.rs - source - - 1 +errors.rs - source 1 2 3 4 @@ -70,7 +67,7 @@ 67 68 69 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/headers/authorization/header.rs.html b/src/actix_web_httpauth/headers/authorization/header.rs.html index 81fe877a0..9363e70e5 100644 --- a/src/actix_web_httpauth/headers/authorization/header.rs.html +++ b/src/actix_web_httpauth/headers/authorization/header.rs.html @@ -1,7 +1,4 @@ -+use std::convert::From; use std::error::Error; use std::fmt; @@ -141,5 +138,6 @@ } }header.rs - source - - 1 +header.rs - source 1 2 3 4 @@ -104,7 +101,7 @@ 101 102 103 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/headers/authorization/mod.rs.html b/src/actix_web_httpauth/headers/authorization/mod.rs.html index 597355f2b..36b9caadf 100644 --- a/src/actix_web_httpauth/headers/authorization/mod.rs.html +++ b/src/actix_web_httpauth/headers/authorization/mod.rs.html @@ -1,7 +1,4 @@ -+use std::fmt; use actix_web::error::ParseError; @@ -209,5 +206,6 @@ } }mod.rs - source - - 1 +mod.rs - source 1 2 3 4 @@ -12,7 +9,7 @@ 9 10 11 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/headers/authorization/scheme/basic.rs.html b/src/actix_web_httpauth/headers/authorization/scheme/basic.rs.html index c1244da54..f9c1b2a1c 100644 --- a/src/actix_web_httpauth/headers/authorization/scheme/basic.rs.html +++ b/src/actix_web_httpauth/headers/authorization/scheme/basic.rs.html @@ -1,7 +1,4 @@ -+//! `Authorization` header and various auth schemes mod errors; @@ -25,5 +22,6 @@ pub use self::scheme::bearer::Bearer; pub use self::scheme::Scheme;basic.rs - source - - 1 +basic.rs - source 1 2 3 4 @@ -198,7 +195,7 @@ 195 196 197 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/headers/authorization/scheme/bearer.rs.html b/src/actix_web_httpauth/headers/authorization/scheme/bearer.rs.html index 17ffc03d6..de686609d 100644 --- a/src/actix_web_httpauth/headers/authorization/scheme/bearer.rs.html +++ b/src/actix_web_httpauth/headers/authorization/scheme/bearer.rs.html @@ -1,7 +1,4 @@ -+use std::borrow::Cow; use std::fmt; use std::str; @@ -397,5 +394,6 @@ } }bearer.rs - source - - 1 +bearer.rs - source 1 2 3 4 @@ -139,7 +136,7 @@ 136 137 138 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/headers/authorization/scheme/mod.rs.html b/src/actix_web_httpauth/headers/authorization/scheme/mod.rs.html index d2cf72f26..ee17da09e 100644 --- a/src/actix_web_httpauth/headers/authorization/scheme/mod.rs.html +++ b/src/actix_web_httpauth/headers/authorization/scheme/mod.rs.html @@ -1,7 +1,4 @@ -+use std::borrow::Cow; use std::fmt; @@ -279,5 +276,6 @@ } }mod.rs - source - - 1 +mod.rs - source 1 2 3 4 @@ -16,7 +13,7 @@ 13 14 15 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/headers/mod.rs.html b/src/actix_web_httpauth/headers/mod.rs.html index 8979863d2..a30d3b2cd 100644 --- a/src/actix_web_httpauth/headers/mod.rs.html +++ b/src/actix_web_httpauth/headers/mod.rs.html @@ -1,15 +1,13 @@ -+use std::fmt::{Debug, Display}; use actix_web::http::header::{HeaderValue, IntoHeaderValue}; @@ -33,5 +30,6 @@ fn parse(header: &HeaderValue) -> Result<Self, ParseError>; }mod.rs - source - - 1 +mod.rs - source 1 2 3 4 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/headers/www_authenticate/challenge/basic.rs.html b/src/actix_web_httpauth/headers/www_authenticate/challenge/basic.rs.html index 7c15c6268..85a440a1a 100644 --- a/src/actix_web_httpauth/headers/www_authenticate/challenge/basic.rs.html +++ b/src/actix_web_httpauth/headers/www_authenticate/challenge/basic.rs.html @@ -1,7 +1,4 @@ -+//! Typed HTTP headers pub mod authorization; pub mod www_authenticate;basic.rs - source - - 1 +basic.rs - source 1 2 3 4 @@ -141,7 +138,7 @@ 138 139 140 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/builder.rs.html b/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/builder.rs.html index ec8d5025f..74013683e 100644 --- a/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/builder.rs.html +++ b/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/builder.rs.html @@ -1,7 +1,4 @@ -+//! Challenge for the "Basic" HTTP Authentication Scheme use std::borrow::Cow; @@ -283,5 +280,6 @@ } }builder.rs - source - - 1 +builder.rs - source 1 2 3 4 @@ -64,7 +61,7 @@ 61 62 63 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/challenge.rs.html b/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/challenge.rs.html index 1a507f53f..1384c7f86 100644 --- a/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/challenge.rs.html +++ b/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/challenge.rs.html @@ -1,7 +1,4 @@ -+use std::borrow::Cow; use super::{Bearer, Error}; @@ -129,5 +126,6 @@ } }challenge.rs - source - - 1 +challenge.rs - source 1 2 3 4 @@ -140,7 +137,7 @@ 137 138 139 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/errors.rs.html b/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/errors.rs.html index a2f04ba31..620a34d65 100644 --- a/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/errors.rs.html +++ b/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/errors.rs.html @@ -1,7 +1,4 @@ -+use std::borrow::Cow; use std::fmt; use std::str; @@ -281,5 +278,6 @@ } }errors.rs - source - - 1 +errors.rs - source 1 2 3 4 @@ -52,7 +49,7 @@ 49 50 51 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/mod.rs.html b/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/mod.rs.html index 98f158ec0..d1244b57e 100644 --- a/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/mod.rs.html +++ b/src/actix_web_httpauth/headers/www_authenticate/challenge/bearer/mod.rs.html @@ -1,7 +1,4 @@ -+use std::fmt; use actix_web::http::StatusCode; @@ -105,5 +102,6 @@ } }mod.rs - source - - 1 +mod.rs - source 1 2 3 4 @@ -13,7 +10,7 @@ 10 11 12 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/headers/www_authenticate/challenge/mod.rs.html b/src/actix_web_httpauth/headers/www_authenticate/challenge/mod.rs.html index 167c346ad..a99f82194 100644 --- a/src/actix_web_httpauth/headers/www_authenticate/challenge/mod.rs.html +++ b/src/actix_web_httpauth/headers/www_authenticate/challenge/mod.rs.html @@ -1,7 +1,4 @@ -+//! Challenge for the "Bearer" HTTP Authentication Scheme mod builder; @@ -27,5 +24,6 @@ #[cfg(test)] mod tests;mod.rs - source - - 1 +mod.rs - source 1 2 3 4 @@ -14,7 +11,7 @@ 11 12 13 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/headers/www_authenticate/header.rs.html b/src/actix_web_httpauth/headers/www_authenticate/header.rs.html index ba5429fcf..875ade93a 100644 --- a/src/actix_web_httpauth/headers/www_authenticate/header.rs.html +++ b/src/actix_web_httpauth/headers/www_authenticate/header.rs.html @@ -1,7 +1,4 @@ -+use std::fmt::{Debug, Display}; use actix_web::http::header::IntoHeaderValue; @@ -29,5 +26,6 @@ fn to_bytes(&self) -> Bytes; }header.rs - source - - 1 +header.rs - source 1 2 3 4 @@ -34,7 +31,7 @@ 31 32 33 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/headers/www_authenticate/mod.rs.html b/src/actix_web_httpauth/headers/www_authenticate/mod.rs.html index b6cddebd7..500b7079d 100644 --- a/src/actix_web_httpauth/headers/www_authenticate/mod.rs.html +++ b/src/actix_web_httpauth/headers/www_authenticate/mod.rs.html @@ -1,7 +1,4 @@ -+use actix_web::error::ParseError; use actix_web::http::header::{ Header, HeaderName, HeaderValue, IntoHeaderValue, WWW_AUTHENTICATE, @@ -69,5 +66,6 @@ } }mod.rs - source - - 1 +mod.rs - source 1 2 3 4 @@ -10,7 +7,7 @@ 7 8 9 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/lib.rs.html b/src/actix_web_httpauth/lib.rs.html index 32133a1a8..8b6282ebd 100644 --- a/src/actix_web_httpauth/lib.rs.html +++ b/src/actix_web_httpauth/lib.rs.html @@ -1,7 +1,4 @@ -+//! `WWW-Authenticate` header and various auth challenges mod challenge; @@ -21,5 +18,6 @@ pub use self::challenge::Challenge; pub use self::header::WwwAuthenticate;lib.rs - source - - 1 +lib.rs - source 1 2 3 4 @@ -25,7 +22,7 @@ 22 23 24 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/middleware.rs.html b/src/actix_web_httpauth/middleware.rs.html index e8e60477c..4ef2a973e 100644 --- a/src/actix_web_httpauth/middleware.rs.html +++ b/src/actix_web_httpauth/middleware.rs.html @@ -1,7 +1,4 @@ -+//! HTTP authentication schemes for [actix-web](https://actix.rs). //! //! Provides: @@ -51,5 +48,6 @@ pub mod middleware; mod utils;middleware.rs - source - - 1 +middleware.rs - source 1 2 3 4 @@ -303,12 +300,27 @@ 300 301 302 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/actix_web_httpauth/utils.rs.html b/src/actix_web_httpauth/utils.rs.html index a9fc2d3e0..d2aa411ed 100644 --- a/src/actix_web_httpauth/utils.rs.html +++ b/src/actix_web_httpauth/utils.rs.html @@ -1,7 +1,4 @@ -+303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +//! HTTP Authentication middleware. -use std::{future::Future, marker::PhantomData, pin::Pin, rc::Rc, sync::Arc}; +use std::{ + error::Error as StdError, future::Future, marker::PhantomData, pin::Pin, rc::Rc, + sync::Arc, +}; use actix_web::{ + body::{AnyBody, MessageBody}, dev::{Service, ServiceRequest, ServiceResponse, Transform}, Error, }; @@ -426,8 +438,10 @@ F: Fn(ServiceRequest, T) -> O + 'static, O: Future<Output = Result<ServiceRequest, Error>> + 'static, T: AuthExtractor + 'static, + B: MessageBody + 'static, + B::Error: StdError, { - type Response = ServiceResponse<B>; + type Response = ServiceResponse; type Error = Error; type Transform = AuthenticationMiddleware<S, F, T>; type InitError = (); @@ -459,10 +473,12 @@ F: Fn(ServiceRequest, T) -> O + 'static, O: Future<Output = Result<ServiceRequest, Error>> + 'static, T: AuthExtractor + 'static, + B: MessageBody + 'static, + B::Error: StdError, { - type Response = ServiceResponse<B>; + type Response = ServiceResponse; type Error = S::Error; - type Future = LocalBoxFuture<'static, Result<ServiceResponse<B>, Error>>; + type Future = LocalBoxFuture<'static, Result<ServiceResponse, Error>>; actix_service::forward_ready!(service); @@ -483,7 +499,10 @@ // middleware to do their thing (eg. cors adding headers) let req = process_fn(req, credentials).await?; - service.call(req).await + service + .call(req) + .await + .map(|res| res.map_body(|_, body| AnyBody::from_message(body))) } .boxed_local() } @@ -607,5 +626,6 @@ } }utils.rs - source - - 1 +utils.rs - source 1 2 3 4 @@ -112,7 +109,7 @@ 109 110 111 -- - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/prost_example/main.rs.html b/src/prost_example/main.rs.html deleted file mode 100644 index 892bb8601..000000000 --- a/src/prost_example/main.rs.html +++ /dev/null @@ -1,73 +0,0 @@ -+use std::str; use actix_web::web::BytesMut; @@ -225,5 +222,6 @@ } }main.rs - source - -- \ No newline at end of file diff --git a/storage.js b/storage.js index 9a98fff0c..6b16cbd83 100644 --- a/storage.js +++ b/storage.js @@ -1 +1 @@ -var resourcesSuffix="";var darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");window.mainTheme=document.getElementById("mainThemeStyle");var settingsDataset=(function(){var settingsElement=document.getElementById("default-settings");if(settingsElement===null){return null}var dataset=settingsElement.dataset;if(dataset===undefined){return null}return dataset})();function getSettingValue(settingName){var current=getCurrentValue('rustdoc-'+settingName);if(current!==null){return current}if(settingsDataset!==null){var def=settingsDataset[settingName.replace(/-/g,'_')];if(def!==undefined){return def}}return null}var localStoredTheme=getSettingValue("theme");var savedHref=[];function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(!elem||!elem.classList){return}elem.classList.add(className)}function removeClass(elem,className){if(!elem||!elem.classList){return}elem.classList.remove(className)}function onEach(arr,func,reversed){if(arr&&arr.length>0&&func){var length=arr.length;var i;if(reversed!==true){for(i=0;i 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 ---use actix_protobuf::*; -use actix_web::*; -use prost_derive::Message; - -#[derive(Clone, PartialEq, Message)] -pub struct MyObj { - #[prost(int32, tag = "1")] - pub number: i32, - - #[prost(string, tag = "2")] - pub name: String, -} - -async fn index(msg: ProtoBuf<MyObj>) -> Result<HttpResponse> { - println!("model: {:?}", msg); - HttpResponse::Ok().protobuf(msg.0) // <- send response -} - -#[actix_web::main] -async fn main() -> std::io::Result<()> { - std::env::set_var("RUST_LOG", "actix_web=debug,actix_server=info"); - env_logger::init(); - - HttpServer::new(|| { - App::new() - .wrap(middleware::Logger::default()) - .service(web::resource("/").route(web::post().to(index))) - }) - .bind("127.0.0.1:8081")? - .shutdown_timeout(1) - .run() - .await -} -=0;--i){if(func(arr[i])===true){return true}}}}return false}function onEachLazy(lazyArray,func,reversed){return onEach(Array.prototype.slice.call(lazyArray),func,reversed)}function hasOwnProperty(obj,property){return Object.prototype.hasOwnProperty.call(obj,property)}function updateLocalStorage(name,value){try{window.localStorage.setItem(name,value)}catch(e){}}function getCurrentValue(name){try{return window.localStorage.getItem(name)}catch(e){return null}}function switchTheme(styleElem,mainStyleElem,newTheme,saveTheme){var fullBasicCss="rustdoc"+resourcesSuffix+".css";var fullNewTheme=newTheme+resourcesSuffix+".css";var newHref=mainStyleElem.href.replace(fullBasicCss,fullNewTheme);if(saveTheme===true){updateLocalStorage("rustdoc-theme",newTheme)}if(styleElem.href===newHref){return}var found=false;if(savedHref.length===0){onEachLazy(document.getElementsByTagName("link"),function(el){savedHref.push(el.href)})}onEach(savedHref,function(el){if(el===newHref){found=true;return true}});if(found===true){styleElem.href=newHref}}function useSystemTheme(value){if(value===undefined){value=true}updateLocalStorage("rustdoc-use-system-theme",value);var toggle=document.getElementById("use-system-theme");if(toggle&&toggle instanceof HTMLInputElement){toggle.checked=value}}var updateSystemTheme=(function(){if(!window.matchMedia){return function(){var cssTheme=getComputedStyle(document.documentElement).getPropertyValue('content');switchTheme(window.currentTheme,window.mainTheme,JSON.parse(cssTheme)||"light",true)}}var mql=window.matchMedia("(prefers-color-scheme: dark)");function handlePreferenceChange(mql){if(getSettingValue("use-system-theme")!=="false"){var lightTheme=getSettingValue("preferred-light-theme")||"light";var darkTheme=getSettingValue("preferred-dark-theme")||"dark";if(mql.matches){switchTheme(window.currentTheme,window.mainTheme,darkTheme,true)}else{switchTheme(window.currentTheme,window.mainTheme,lightTheme,true)}}}mql.addListener(handlePreferenceChange);return function(){handlePreferenceChange(mql)}})();if(getSettingValue("use-system-theme")!=="false"&&window.matchMedia){if(getSettingValue("use-system-theme")===null&&getSettingValue("preferred-dark-theme")===null&&darkThemes.indexOf(localStoredTheme)>=0){updateLocalStorage("rustdoc-preferred-dark-theme",localStoredTheme)}updateSystemTheme()}else{switchTheme(window.currentTheme,window.mainTheme,getSettingValue("theme")||"light",false)} \ No newline at end of file +var resourcesSuffix="";var darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");window.mainTheme=document.getElementById("mainThemeStyle");var settingsDataset=(function(){var settingsElement=document.getElementById("default-settings");if(settingsElement===null){return null}var dataset=settingsElement.dataset;if(dataset===undefined){return null}return dataset})();function getSettingValue(settingName){var current=getCurrentValue('rustdoc-'+settingName);if(current!==null){return current}if(settingsDataset!==null){var def=settingsDataset[settingName.replace(/-/g,'_')];if(def!==undefined){return def}}return null}var localStoredTheme=getSettingValue("theme");var savedHref=[];function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(!elem||!elem.classList){return}elem.classList.add(className)}function removeClass(elem,className){if(!elem||!elem.classList){return}elem.classList.remove(className)}function onEach(arr,func,reversed){if(arr&&arr.length>0&&func){var length=arr.length;var i;if(reversed){for(i=length-1;i>=0;--i){if(func(arr[i])){return true}}}else{for(i=0;i =0){updateLocalStorage("rustdoc-preferred-dark-theme",localStoredTheme)}updateSystemTheme()}else{switchTheme(window.currentTheme,window.mainTheme,getSettingValue("theme")||"light",false)} \ No newline at end of file