#[non_exhaustive]pub struct ServiceProviderOptions {
pub validate_scopes: bool,
}Expand description
Options for building a ServiceProvider.
#[non_exhaustive]: construct via ServiceProviderOptions::new and the
with_* builder methods (Default equals new()), so future options stay
additive.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.validate_scopes: boolReject resolving Scoped services from the root provider.
Mirrors MEDI ValidateScopes as enabled by the .NET (ASP.NET Core) host
in the Development environment: resolving a scoped service outside a
scope is a misconfiguration, because the root caches it for the container
lifetime (the “scoped becomes singleton” anti-pattern).
true(default):get/get_async(and constructor dependencies) returnRdiError::ScopedFromRootProviderwhen they would resolve aScopedservice from the root provider. Infallible lookups (get_optional,get_all,get_all_keyed,try_*) treat such a service as not resolvable at the root.get_ownedis exempt for the owned instance itself (it is caller-owned and never enters a scope cache); its transitive dependencies are still validated.false: restores rust-dix ≤ 0.7 root-scope behavior (the root provider caches scoped instances and acts as the root scope).
Implementations§
Source§impl ServiceProviderOptions
impl ServiceProviderOptions
Sourcepub fn with_validate_scopes(self, validate_scopes: bool) -> Self
pub fn with_validate_scopes(self, validate_scopes: bool) -> Self
Set scope validation explicitly.
Trait Implementations§
Source§impl Clone for ServiceProviderOptions
impl Clone for ServiceProviderOptions
impl Copy for ServiceProviderOptions
Source§impl Debug for ServiceProviderOptions
impl Debug for ServiceProviderOptions
Source§impl Default for ServiceProviderOptions
impl Default for ServiceProviderOptions
impl Eq for ServiceProviderOptions
Source§impl PartialEq for ServiceProviderOptions
impl PartialEq for ServiceProviderOptions
impl StructuralPartialEq for ServiceProviderOptions
Auto Trait Implementations§
impl Forget for ServiceProviderOptions
impl Freeze for ServiceProviderOptions
impl RefUnwindSafe for ServiceProviderOptions
impl Send for ServiceProviderOptions
impl Sync for ServiceProviderOptions
impl Unpin for ServiceProviderOptions
impl UnsafeUnpin for ServiceProviderOptions
impl UnwindSafe for ServiceProviderOptions
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