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
Sourcepub fn context_scope(&self, context_id: &ContextId) -> Self
pub fn context_scope(&self, context_id: &ContextId) -> Self
Bind this module view to an existing dependency-injection context.
Sourcepub fn context_id(&self) -> Option<&ContextId>
pub fn context_id(&self) -> Option<&ContextId>
Return the dependency-injection context attached to this module view.
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_with_context<T>(&self, context_id: &ContextId) -> Result<Arc<T>>
pub fn resolve_with_context<T>(&self, context_id: &ContextId) -> Result<Arc<T>>
Resolve a typed provider in a caller-supplied resolution context.
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_named_with_context<T>(
&self,
token: &str,
context_id: &ContextId,
) -> Result<Arc<T>>
pub fn resolve_named_with_context<T>( &self, token: &str, context_id: &ContextId, ) -> Result<Arc<T>>
Resolve a named provider in a caller-supplied 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_with_context<T>(
&self,
context_id: &ContextId,
) -> Result<Option<Arc<T>>>
pub fn resolve_optional_with_context<T>( &self, context_id: &ContextId, ) -> Result<Option<Arc<T>>>
Resolve an optional typed provider in a caller-supplied context.
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 resolve_optional_named_with_context<T>(
&self,
token: &str,
context_id: &ContextId,
) -> Result<Option<Arc<T>>>
pub fn resolve_optional_named_with_context<T>( &self, token: &str, context_id: &ContextId, ) -> Result<Option<Arc<T>>>
Resolve an optional named provider in a caller-supplied context.
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.
pub fn contains(&self, token: &ProviderToken) -> Result<bool>
pub fn contains_provider<T>(&self) -> Result<bool>
pub fn contains_named(&self, token: &str) -> Result<bool>
Sourcepub fn provider_is_contextual<T>(&self) -> Result<bool>
pub fn provider_is_contextual<T>(&self) -> Result<bool>
Return whether a typed provider requires a request-resolution context.
This includes explicitly request-scoped providers and singleton or transient providers whose declared dependency tree reaches one.
Sourcepub fn provider_scope<T>(&self) -> Result<ProviderScope>
pub fn provider_scope<T>(&self) -> Result<ProviderScope>
Return the provider’s declared cache scope after following aliases.
Sourcepub fn named_provider_is_contextual(&self, token: &str) -> Result<bool>
pub fn named_provider_is_contextual(&self, token: &str) -> Result<bool>
Return whether a named provider requires a request-resolution context.
Sourcepub fn named_provider_scope(&self, token: &str) -> Result<ProviderScope>
pub fn named_provider_scope(&self, token: &str) -> Result<ProviderScope>
Return a named provider’s declared cache scope after following aliases.