pub struct ServiceProvider(pub Services);Expand description
An extractor that provides access to application services in route handlers.
This extractor simplifies access to application services by extracting them from request extensions. It serves as a convenient wrapper around the Services type without performing any additional validation or authentication.
§Fields
0- The Services instance containing all application services
§Example
async fn route_handler(
ServiceProvider(services): ServiceProvider
) -> Result<impl Response, Error> {
// Use services directly
let some_data = services.some_service.do_something().await?;
Ok(some_data)
}Tuple Fields§
§0: ServicesTrait Implementations§
source§impl<S> FromRequestParts<S> for ServiceProvider
impl<S> FromRequestParts<S> for ServiceProvider
Implementation of FromRequestParts to enable automatic extraction of services from request extensions.
§Errors
Returns Error::InternalServerErrorWithContext if:
- Services are not found in request extensions
- Extension extraction fails
Auto Trait Implementations§
impl Freeze for ServiceProvider
impl !RefUnwindSafe for ServiceProvider
impl Send for ServiceProvider
impl Sync for ServiceProvider
impl Unpin for ServiceProvider
impl !UnwindSafe for ServiceProvider
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<S, T> FromRequest<S, ViaParts> for T
impl<S, T> FromRequest<S, ViaParts> for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreCreates a shared type from an unshared type.
§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.