pub struct ServiceProviderWrapper { /* private fields */ }Implementations§
Source§impl ServiceProviderWrapper
impl ServiceProviderWrapper
pub fn new(child: Arc<ServiceProvider>, root: Arc<ServiceProvider>) -> Arc<Self> ⓘ
pub fn child(&self) -> &Arc<ServiceProvider> ⓘ
pub fn root(&self) -> &Arc<ServiceProvider> ⓘ
pub fn get<T: ?Sized + Send + Sync + 'static>(&self) -> Result<Arc<T>, RdiError>
pub fn get_optional<T: ?Sized + Send + Sync + 'static>(&self) -> Option<Arc<T>>
pub fn get_keyed<T: ?Sized + Send + Sync + 'static>( &self, key: &str, ) -> Result<Arc<T>, RdiError>
pub fn get_all<T: ?Sized + Send + Sync + 'static>(&self) -> Vec<Arc<T>>
pub fn get_named<T: Send + Sync + 'static>(&self, name: &str) -> Option<Arc<T>>
pub fn get_named_any(&self, name: &str) -> Option<Arc<dyn Any + Send + Sync>>
Sourcepub fn get_owned<T: Send + Sync + 'static>(&self) -> Result<T, RdiError>
pub fn get_owned<T: Send + Sync + 'static>(&self) -> Result<T, RdiError>
Resolve owned T (bypass cache, fresh each call). Child-first, root-fallback.
Returns Err if not registered or the service is Singleton.
Sourcepub fn try_get_owned<T: Send + Sync + 'static>(&self) -> Option<T>
pub fn try_get_owned<T: Send + Sync + 'static>(&self) -> Option<T>
Resolve owned T, returning None if not registered or Singleton.
Sourcepub fn get_keyed_owned<T: Send + Sync + 'static>(
&self,
key: &str,
) -> Result<T, RdiError>
pub fn get_keyed_owned<T: Send + Sync + 'static>( &self, key: &str, ) -> Result<T, RdiError>
Resolve owned keyed T. Child-first, root-fallback.
Sourcepub fn try_get_keyed_owned<T: Send + Sync + 'static>(
&self,
key: &str,
) -> Option<T>
pub fn try_get_keyed_owned<T: Send + Sync + 'static>( &self, key: &str, ) -> Option<T>
Resolve owned keyed T, returning None if not found or Singleton.
Trait Implementations§
Source§impl IProvider for ServiceProviderWrapper
impl IProvider for ServiceProviderWrapper
Source§impl IServiceResolver for ServiceProviderWrapper
impl IServiceResolver for ServiceProviderWrapper
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>>
Source§fn get_keyed_by_type_id(
&self,
tid: TypeId,
key: &str,
) -> Option<Arc<dyn Any + Send + Sync>>
fn get_keyed_by_type_id( &self, tid: TypeId, key: &str, ) -> Option<Arc<dyn Any + Send + Sync>>
TypeId 直查 keyed 版本(默认
None)。Source§fn get_all_any(&self, key: &str) -> Vec<Arc<dyn Any + Send + Sync>>
fn get_all_any(&self, key: &str) -> Vec<Arc<dyn Any + Send + Sync>>
Type-erased polymorphic resolution: return all registered instances
(default + keyed) of the given type. Read more
Source§fn get_owned_any(&self, key: &str) -> Option<Arc<dyn Any + Send + Sync>>
fn get_owned_any(&self, key: &str) -> Option<Arc<dyn Any + Send + Sync>>
Type-erased owned resolution: bypass cache, call factory fresh, return
Arc<dyn Any + Send + Sync> (concrete Arc<Arc<T>>). Read morefn get_keyed_owned_any( &self, key: &str, variant: &str, ) -> Option<Arc<dyn Any + Send + Sync>>
Source§fn provider_arc(&self) -> Option<Arc<ServiceProvider>>
fn provider_arc(&self) -> Option<Arc<ServiceProvider>>
Return an
Arc<ServiceProvider> for on-demand service resolution. Read moreSource§fn get<T: ?Sized + Sync + Send + 'static>(&self) -> Result<Arc<T>, RdiError>where
Self: Sized,
fn get<T: ?Sized + Sync + Send + 'static>(&self) -> Result<Arc<T>, RdiError>where
Self: Sized,
Resolve a service by type (concrete or
dyn Trait).
Returns Err(RdiError::ServiceNotFound) if not registered. Read moreSource§fn 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.Source§fn get_keyed<T: ?Sized + Sync + Send + 'static>(
&self,
variant: &str,
) -> Result<Arc<T>, RdiError>where
Self: Sized,
fn get_keyed<T: ?Sized + Sync + Send + 'static>(
&self,
variant: &str,
) -> Result<Arc<T>, RdiError>where
Self: Sized,
Resolve a keyed service by type and key. Returns
Err if not found.Source§fn try_get_keyed<T: ?Sized + Sync + Send + 'static>(
&self,
variant: &str,
) -> Option<Arc<T>>where
Self: Sized,
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.Source§fn get_all<T: ?Sized + Sync + Send + 'static>(&self) -> Vec<Arc<T>>where
Self: Sized,
fn get_all<T: ?Sized + Sync + Send + 'static>(&self) -> Vec<Arc<T>>where
Self: Sized,
Resolve all registered instances of
T (default + keyed). Read moreSource§fn get_owned<T: Send + Sync + 'static>(&self) -> Result<T, RdiError>where
Self: Sized,
fn get_owned<T: Send + Sync + 'static>(&self) -> Result<T, RdiError>where
Self: Sized,
Resolve owned
T (bypass cache, fresh each call).
Returns Err if not registered or the service is Singleton.Source§fn try_get_owned<T: Send + Sync + 'static>(&self) -> Option<T>where
Self: Sized,
fn try_get_owned<T: Send + Sync + 'static>(&self) -> Option<T>where
Self: Sized,
Resolve owned
T, returning None if not registered or Singleton.Auto Trait Implementations§
impl !RefUnwindSafe for ServiceProviderWrapper
impl !UnwindSafe for ServiceProviderWrapper
impl Freeze for ServiceProviderWrapper
impl Send for ServiceProviderWrapper
impl Sync for ServiceProviderWrapper
impl Unpin for ServiceProviderWrapper
impl UnsafeUnpin for ServiceProviderWrapper
Blanket Implementations§
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