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§
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§
Sourcefn get<T: ?Sized + Sync + Send + 'static>(&self) -> Arc<T> ⓘwhere
Self: Sized,
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.
Sourcefn try_get<T: ?Sized + Sync + Send + 'static>(&self) -> Option<Arc<T>>where
Self: Sized,
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.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".