Skip to main content

OAuthProviderPlugin

Struct OAuthProviderPlugin 

Source
pub struct OAuthProviderPlugin { /* private fields */ }

Implementations§

Source§

impl OAuthProviderPlugin

Source

pub async fn validate_access_token<S: AuthSchema>( &self, ctx: &AuthContext<S>, token: &str, client_id: Option<&str>, ) -> Result<Value, EndpointError>

Validate access authority and return its RFC 7662 payload. Unknown tokens are errors; recognized but inactive authority returns active: false.

Source

pub async fn require_active_access_token<S: AuthSchema>( &self, ctx: &AuthContext<S>, token: &str, client_id: Option<&str>, ) -> Result<Value, EndpointError>

Require recognized and active authority, preserving the reference Bearer challenge.

Source§

impl OAuthProviderPlugin

Source

pub async fn authenticate_client<S: AuthSchema>( &self, ctx: &AuthContext<S>, call: &EndpointCall, grant_type: Option<&str>, options: &OAuthClientAuthenticationOptions, ) -> Result<OAuthAuthenticatedClient, EndpointError>

Authenticate a client against this endpoint, its scopes and an optional bound grant. Equivalent to getOAuthProviderApi(...).authenticateClient; assertion audiences use the logical endpoint path. Public clients require an explicit caller opt-in.

Source§

impl OAuthProviderPlugin

Source

pub fn oauth2_authorize_endpoint( query: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>

Authorize an OAuth request with its genuine physical request attached.

Source§

impl OAuthProviderPlugin

Source§

impl OAuthProviderPlugin

Source

pub fn get_oauth_client_endpoint( client_id: &str, ) -> AuthResult<ServerEndpoint<Value>>

Read an owned client without exposing its stored credential.

Source§

impl OAuthProviderPlugin

Source

pub fn get_oauth_client_public_endpoint( client_id: &str, ) -> AuthResult<ServerEndpoint<Value>>

Read public display fields for any authenticated user.

Source§

impl OAuthProviderPlugin

Source

pub fn get_oauth_clients_endpoint() -> ServerEndpoint<Value>

List durable clients belonging to the authenticated user.

Source§

impl OAuthProviderPlugin

Source

pub fn delete_oauth_client_endpoint( client_id: &str, ) -> AuthResult<ServerEndpoint<()>>

Delete a durable client owned by the authenticated user.

Source§

impl OAuthProviderPlugin

Source

pub fn rotate_client_secret_endpoint( client_id: &str, ) -> AuthResult<ServerEndpoint<Value>>

Rotate an owned confidential client secret and reveal its replacement once.

Source§

impl OAuthProviderPlugin

Source

pub fn update_oauth_client_endpoint( client_id: &str, update: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>

Patch metadata of a durable client owned by the authenticated user.

Source§

impl OAuthProviderPlugin

Source

pub fn register_oauth_client_endpoint( input: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>

Register a client under the provider’s dynamic-registration policy.

Source§

impl OAuthProviderPlugin

Source

pub fn admin_create_oauth_client_endpoint( input: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>

Create a managed client with operator fields through the trusted server API.

Source§

impl OAuthProviderPlugin

Source

pub fn admin_update_oauth_client_endpoint( client_id: &str, update: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>

Patch operator-controlled fields of an owned client through the server-only API.

Source§

impl OAuthProviderPlugin

Source

pub fn get_oauth_client_public_prelogin_endpoint( client_id: &str, oauth_query: Option<&str>, ) -> AuthResult<ServerEndpoint<Value>>

Read public client display metadata before login using a provider-issued authorization query.

Source§

impl OAuthProviderPlugin

Source

pub async fn register_client_metadata_document<S: AuthSchema>( &self, input: RegisterClientMetadataDocumentInput, ctx: &AuthContext<S>, ) -> Result<OAuthClientRegistrationResult, EndpointError>

Persist a validated document under its discovery owner. This does not fetch or discover it.

Source§

impl OAuthProviderPlugin

Accept or deny a provider-issued authorization request as the current user.

Source§

impl OAuthProviderPlugin

Source

pub fn get_oauth_consents_endpoint() -> ServerEndpoint<Value>

List durable OAuth grants belonging to the current authenticated user.

Source§

impl OAuthProviderPlugin

Return the current user’s durable consent identified by its stored grant ID.

Source§

impl OAuthProviderPlugin

Replace the current user’s granted scopes with a subset allowed by the client.

Source§

impl OAuthProviderPlugin

Delete the current user’s stored OAuth grant.

Source§

impl OAuthProviderPlugin

Source

pub fn oauth2_continue_endpoint( input: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>

Resume a signed OAuth request after account selection, registration or post-login interaction.

Source§

impl OAuthProviderPlugin

Source

pub async fn get_client<S: AuthSchema>( &self, ctx: &AuthContext<S>, client_id: &str, ) -> AuthResult<Option<OAuthClient>>

Resolve the raw client for a trusted server caller, including stored credentials. Equivalent to getOAuthProviderApi(...).getClient; callers authorize access.

Source§

impl OAuthProviderPlugin

Source

pub fn get_oauth_provider_api<'a, S: AuthSchema>( &'a self, context: &'a AuthContext<S>, call: &'a EndpointCall, grant_type: Option<&'a str>, ) -> impl OAuthProviderApi + 'a

Obtain live capabilities for an extension or a trusted companion endpoint. Issuance without a bound grant is rejected by the shared issuance owner.

Source§

impl OAuthProviderPlugin

Source

pub async fn issue_tokens<S: AuthSchema>( &self, ctx: &AuthContext<S>, call: &EndpointCall, grant_type: Option<&str>, params: &OAuthTokenIssueParams, ) -> Result<Value, EndpointError>

Mint authority for an already authorized caller. The grant is required, but need not be registered: admission is the trusted caller’s responsibility.

Source§

impl OAuthProviderPlugin

Source

pub fn oauth2_introspect_endpoint( input: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>

Inspect an access or refresh token using the introspecting client’s credentials.

Source§

impl OAuthProviderPlugin

Source§

impl OAuthProviderPlugin

Source

pub fn admin_create_oauth_resource_endpoint( input: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>

Create durable provider resource policy through the server-only administration API.

Source§

impl OAuthProviderPlugin

Source

pub fn admin_list_oauth_resources_endpoint() -> ServerEndpoint<Value>

List the provider’s complete resource catalog through its server-only API.

Source§

impl OAuthProviderPlugin

Source

pub fn admin_get_oauth_resource_endpoint( identifier: &str, ) -> AuthResult<ServerEndpoint<Value>>

Read durable resource policy by a raw or URI-encoded identifier through the server-only API.

Source§

impl OAuthProviderPlugin

Source

pub fn admin_update_oauth_resource_endpoint( identifier: &str, patch: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>

Patch the provider’s durable resource policy without changing its identifier.

Source§

impl OAuthProviderPlugin

Source

pub fn admin_delete_oauth_resource_endpoint( identifier: &str, ) -> AuthResult<ServerEndpoint<Value>>

Remove durable provider resource policy through the server-only administration API.

Source§

impl OAuthProviderPlugin

Grant a client durable membership in a provider resource through the server-only API.

Source§

impl OAuthProviderPlugin

Remove a client’s durable resource membership, including an already absent pair.

Source§

impl OAuthProviderPlugin

Source

pub fn oauth2_revoke_endpoint( input: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>

Revoke an issued token using its client’s registered authentication method.

Source§

impl OAuthProviderPlugin

Source

pub fn oauth2_token_endpoint( input: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>

Exchange an OAuth grant through the provider’s public server operation.

Source§

impl OAuthProviderPlugin

Source

pub async fn hash_token(&self, token: &str, kind: &str) -> AuthResult<String>

Hash a token using this provider’s storage policy (getOAuthProviderApi().hashToken).

Source§

impl OAuthProviderPlugin

Source

pub fn oauth2_user_info_endpoint() -> ServerEndpoint<Value>

Read the current user claims authorized by an OAuth access token.

Source§

impl OAuthProviderPlugin

Source

pub fn new() -> Self

Source

pub fn with_config(config: OAuthProviderConfig) -> Self

Source

pub fn get_oauth_server_config_endpoint() -> ServerEndpoint<Value>

Return the issuer’s authorization-server configuration for trusted server callers.

Source

pub fn get_open_id_config_endpoint() -> ServerEndpoint<Value>

Return OpenID configuration when the provider supports the openid scope.

Trait Implementations§

Source§

impl<S: AuthSchema> AuthPlugin<S> for OAuthProviderPlugin

Source§

fn name(&self) -> &'static str

Plugin name - should be unique
Source§

fn rate_limits(&self) -> Vec<PluginRateLimit>

Ordered rate-limit policies supplied by this installed plugin.
Source§

fn endpoint_hooks(&self) -> Vec<&dyn EndpointHook<S>>

Installed logical-call hooks, in this plugin’s registration order.
Source§

fn before_request<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, req: &'life1 AuthRequest, ctx: &'life2 AuthContext<S>, ) -> Pin<Box<dyn Future<Output = AuthResult<Option<BeforeRequestAction>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called after route matching and before endpoint dispatch. Read more
Source§

fn after_request<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, req: &'life1 AuthRequest, ctx: &'life2 AuthContext<S>, response: AuthResponse, ) -> Pin<Box<dyn Future<Output = AuthResult<AuthResponse>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Transform a completed response, including redirects and rejections. Read more
Source§

fn allowed_media_types(&self, route: &AuthRoute) -> Vec<&'static str>

Media types accepted before request hooks and endpoint dispatch. An empty list disables the media restriction for an application-owned endpoint.
Source§

fn routes(&self) -> Vec<AuthRoute>

Routes that this plugin handles
Source§

fn server_endpoints(&self) -> Vec<EndpointDefinition>

Trusted operations available through host dispatch, independently of HTTP visibility.
Source§

fn validate_endpoint( &self, call: &EndpointCall, _ctx: &AuthContext<S>, ) -> AuthResult<EndpointInput>

Validate actual input after all before-hook patches have been applied. Read more
Source§

fn on_endpoint<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, call: &'life1 EndpointCall, ctx: &'life2 AuthContext<S>, ) -> Pin<Box<dyn Future<Output = AuthResult<EndpointResponse>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Execute a registered operation with validated handler-phase context. Read more
Source§

fn on_request<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, req: &'life1 AuthRequest, ctx: &'life2 AuthContext<S>, ) -> Pin<Box<dyn Future<Output = AuthResult<Option<AuthResponse>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called for each request - return Some(response) to handle, None to pass through
Source§

fn on_init<'life0, 'life1, 'async_trait>( &'life0 self, ctx: &'life1 mut AuthInitContext<S>, ) -> Pin<Box<dyn Future<Output = AuthResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Called when the plugin is initialized
Source§

fn origin_check_skip_paths(&self) -> Vec<&'static str>

Protocol callback prefixes whose verified state replaces browser origin admission.
Source§

fn session_fields(&self) -> IndexMap<String, FieldConfig>

Session field policies contributed by this registered plugin.
Source§

fn user_fields(&self) -> IndexMap<String, FieldConfig>

Source§

fn account_fields(&self) -> IndexMap<String, FieldConfig>

Source§

fn openapi_metadata(&self, _ctx: &AuthInitContext<S>) -> PluginOpenApiMetadata

Documentation annotations collected after all plugins initialize. Override this hook for custom endpoints and model field policies.
Source§

fn static_openapi_metadata(&self) -> PluginOpenApiMetadata

Base declarations for documentation without an initialized auth instance.
Source§

fn on_http_request<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _req: &'life1 AuthRequest, _ctx: &'life2 AuthContext<S>, ) -> Pin<Box<dyn Future<Output = Result<Option<AuthResponse>, AuthError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

Inspect the original physical HTTP request before routing, body parsing, origin validation and endpoint hooks. Disabled paths and transport/rate limiting middleware run first. Returning a response stops dispatch and later plugin hooks. Server-only endpoint calls do not invoke this hook.
Source§

fn on_http_request_action<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, req: &'life1 AuthRequest, ctx: &'life2 AuthContext<S>, ) -> Pin<Box<dyn Future<Output = Result<Option<HttpRequestAction>, AuthError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

Inspect or replace the physical request. The default preserves existing on_http_request implementations. Request-local configuration has already been resolved from the incoming request, matching the Source HTTP handler.
Source§

fn on_http_response<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, _req: &'life1 AuthRequest, _ctx: &'life2 AuthContext<S>, _response: &'life3 AuthResponse, ) -> Pin<Box<dyn Future<Output = Result<Option<AuthResponse>, AuthError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, Self: 'async_trait,

Observe the routed HTTP response before transport middleware (including CORS). Hooks run in registration order; the first replacement stops this chain. Early HTTP request-hook responses skip this stage. Errors escape dispatch; they cannot reverse writes already committed by an endpoint.
Source§

fn on_http_endpoint<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, req: &'life1 AuthRequest, ctx: &'life2 AuthContext<S>, ) -> Pin<Box<dyn Future<Output = Result<Option<HttpEndpointResponse>, AuthError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

Dispatch the resolved HTTP endpoint. Existing plugins return logical values through on_request; plugins returning a native raw response can override this method to bypass the endpoint after-hook pipeline.
Source§

fn on_user_created<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _user: &'life1 <S as AuthSchema>::User, _ctx: &'life2 AuthContext<S>, ) -> Pin<Box<dyn Future<Output = Result<(), AuthError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

Called after a user is created
Source§

fn on_session_created<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _session: &'life1 <S as AuthSchema>::Session, _ctx: &'life2 AuthContext<S>, ) -> Pin<Box<dyn Future<Output = Result<(), AuthError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

Called after a session is created
Source§

fn on_user_deleted<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _user_id: &'life1 str, _ctx: &'life2 AuthContext<S>, ) -> Pin<Box<dyn Future<Output = Result<(), AuthError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

Called before a user is deleted
Source§

fn on_session_deleted<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _session_token: &'life1 str, _ctx: &'life2 AuthContext<S>, ) -> Pin<Box<dyn Future<Output = Result<(), AuthError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

Called before a session is deleted
Source§

impl Clone for OAuthProviderPlugin

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for OAuthProviderPlugin

Source§

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

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

impl Default for OAuthProviderPlugin

Source§

fn default() -> Self

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

impl<S: AuthSchema> EndpointHook<S> for OAuthProviderPlugin

Source§

fn matches_before( &self, call: &EndpointCall, _: &AuthContext<S>, ) -> AuthResult<bool>

Matchers observe raw logical context, before middleware normalization. Read more
Source§

fn before<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, call: &'life1 EndpointCall, ctx: &'life2 AuthContext<S>, ) -> Pin<Box<dyn Future<Output = AuthResult<Option<BeforeEndpointAction>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Errors Read more
Source§

fn after<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, call: &'life1 EndpointCall, ctx: &'life2 AuthContext<S>, response: EndpointResponse, ) -> Pin<Box<dyn Future<Output = AuthResult<EndpointResponse>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Errors Read more
Source§

fn matches_after( &self, _call: &EndpointCall, _ctx: &AuthContext<S>, _response: &EndpointResponse, ) -> Result<bool, AuthError>

Errors Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

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

Source§

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

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

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

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

Source§

impl<T> Instrument for T

Source§

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

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

fn in_current_span(self) -> Instrumented<Self> ⓘ

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

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

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

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

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

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

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

Source§

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

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

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

Performs the conversion.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

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