ServiceProviderExt

Trait ServiceProviderExt 

Source
pub trait ServiceProviderExt: ServiceProvider {
    // Provided methods
    fn get_service<T: 'static + Send + Sync>(&self) -> DiResult<Option<Arc<T>>> { ... }
    fn get_required_service<T: 'static + Send + Sync>(&self) -> DiResult<Arc<T>> { ... }
    fn get_keyed_service<T: 'static + Send + Sync>(
        &self,
        key: &str,
    ) -> DiResult<Option<Arc<T>>> { ... }
    fn get_required_keyed_service<T: 'static + Send + Sync>(
        &self,
        key: &str,
    ) -> DiResult<Arc<T>> { ... }
    fn downcast_arc<T: 'static + Send + Sync>(
        &self,
        any_arc: Arc<dyn Any + Send + Sync>,
    ) -> DiResult<Option<Arc<T>>> { ... }
}
Expand description

Service provider extension trait - contains generic methods

Provided Methods§

Source

fn get_service<T: 'static + Send + Sync>(&self) -> DiResult<Option<Arc<T>>>

Get a service of the specified type

Source

fn get_required_service<T: 'static + Send + Sync>(&self) -> DiResult<Arc<T>>

Get a required service of the specified type

Source

fn get_keyed_service<T: 'static + Send + Sync>( &self, key: &str, ) -> DiResult<Option<Arc<T>>>

Get a service of the specified name and type

Source

fn get_required_keyed_service<T: 'static + Send + Sync>( &self, key: &str, ) -> DiResult<Arc<T>>

Get a required service of the specified name and type

Source

fn downcast_arc<T: 'static + Send + Sync>( &self, any_arc: Arc<dyn Any + Send + Sync>, ) -> DiResult<Option<Arc<T>>>

Convert Arc to Arc

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<T: ServiceProvider + ?Sized> ServiceProviderExt for T

Automatically implement ServiceProviderExt for all types that implement ServiceProvider