pub struct ModuleRef { /* private fields */ }Expand description
Runtime provider container. This is Boot’s Rust equivalent of Nest’s ModuleRef.
Implementations§
Source§impl ModuleRef
impl ModuleRef
pub fn new() -> Self
pub fn request_scope(&self) -> Self
pub fn register(&self, definition: ProviderDefinition) -> Result<()>
pub async fn register_async(&self, definition: ProviderDefinition) -> Result<()>
pub fn insert<T>(&self, value: T) -> Result<()>
pub fn insert_arc<T>(&self, value: Arc<T>) -> Result<()>
pub fn get<T>(&self) -> Result<Arc<T>>
pub fn get_named<T>(&self, token: &str) -> Result<Arc<T>>
pub fn get_optional<T>(&self) -> Result<Option<Arc<T>>>
pub fn get_optional_named<T>(&self, token: &str) -> Result<Option<Arc<T>>>
Sourcepub fn provider_ref<T>(&self) -> ProviderRef<T>
pub fn provider_ref<T>(&self) -> ProviderRef<T>
Create a lazy provider handle for a typed dependency.
Sourcepub fn named_provider_ref<T>(&self, token: &str) -> ProviderRef<T>
pub fn named_provider_ref<T>(&self, token: &str) -> ProviderRef<T>
Create a lazy provider handle for a named dependency.
Sourcepub fn optional_provider_ref<T>(&self) -> Result<Option<ProviderRef<T>>>
pub fn optional_provider_ref<T>(&self) -> Result<Option<ProviderRef<T>>>
Create a lazy provider handle only when the typed dependency is visible.
Sourcepub fn optional_named_provider_ref<T>(
&self,
token: &str,
) -> Result<Option<ProviderRef<T>>>
pub fn optional_named_provider_ref<T>( &self, token: &str, ) -> Result<Option<ProviderRef<T>>>
Create a lazy provider handle only when the named dependency is visible.
Sourcepub fn resolve<T>(&self) -> Result<Arc<T>>
pub fn resolve<T>(&self) -> Result<Arc<T>>
Resolve a typed provider in a fresh resolution context.
This mirrors Nest’s ModuleRef.resolve(...): singleton providers reuse
their application instance, while request-scoped dependencies share one
temporary context for this resolution and transient providers are rebuilt.
Sourcepub fn resolve_named<T>(&self, token: &str) -> Result<Arc<T>>
pub fn resolve_named<T>(&self, token: &str) -> Result<Arc<T>>
Resolve a named provider in a fresh resolution context.
Sourcepub fn resolve_optional<T>(&self) -> Result<Option<Arc<T>>>
pub fn resolve_optional<T>(&self) -> Result<Option<Arc<T>>>
Resolve a typed provider in a fresh resolution context when it exists.
Sourcepub fn resolve_optional_named<T>(&self, token: &str) -> Result<Option<Arc<T>>>
pub fn resolve_optional_named<T>(&self, token: &str) -> Result<Option<Arc<T>>>
Resolve a named provider in a fresh resolution context when it exists.
Sourcepub fn create<T>(&self) -> Result<T>where
T: FromModuleRef,
pub fn create<T>(&self) -> Result<T>where
T: FromModuleRef,
Create an injectable value without registering it in the provider graph.
Sourcepub fn create_arc<T>(&self) -> Result<Arc<T>>where
T: FromModuleRef,
pub fn create_arc<T>(&self) -> Result<Arc<T>>where
T: FromModuleRef,
Create an injectable Arc<T> without registering it in the provider graph.