Skip to main content

IServiceResolver

Trait IServiceResolver 

Source
pub trait IServiceResolver: Send + Sync {
    // Required methods
    fn get_any(&self, key: &str) -> Option<Arc<dyn Any + Send + Sync>>;
    fn get_keyed_any(
        &self,
        key: &str,
        variant: &str,
    ) -> Option<Arc<dyn Any + Send + Sync>>;

    // Provided methods
    fn get<T: ?Sized + Sync + Send + 'static>(&self) -> Arc<T> 
       where Self: Sized { ... }
    fn try_get<T: ?Sized + Sync + Send + 'static>(&self) -> Option<Arc<T>>
       where Self: Sized { ... }
    fn get_keyed<T: ?Sized + Sync + Send + 'static>(
        &self,
        variant: &str,
    ) -> Arc<T> 
       where Self: Sized { ... }
    fn try_get_keyed<T: ?Sized + Sync + Send + 'static>(
        &self,
        variant: &str,
    ) -> Option<Arc<T>>
       where Self: Sized { ... }
}
Expand description

Service resolver trait — the core DI resolution interface.

Provides both type-erased and generic resolution methods.

Required Methods§

Source

fn get_any(&self, key: &str) -> Option<Arc<dyn Any + Send + Sync>>

Source

fn get_keyed_any( &self, key: &str, variant: &str, ) -> Option<Arc<dyn Any + Send + Sync>>

Provided Methods§

Source

fn get<T: ?Sized + Sync + Send + 'static>(&self) -> Arc<T>
where Self: Sized,

Resolve a service by type (concrete or dyn Trait). Panics if not registered.

Source

fn try_get<T: ?Sized + Sync + Send + 'static>(&self) -> Option<Arc<T>>
where Self: Sized,

Resolve a service by type, returning None if not registered.

Source

fn get_keyed<T: ?Sized + Sync + Send + 'static>(&self, variant: &str) -> Arc<T>
where Self: Sized,

Resolve a keyed service by type and key. Panics if not found.

Source

fn try_get_keyed<T: ?Sized + Sync + Send + 'static>( &self, variant: &str, ) -> Option<Arc<T>>
where Self: Sized,

Resolve a keyed service by type and key, returning None if not found.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§