#[non_exhaustive]pub enum RdiError {
ServiceNotFound {
ty: &'static str,
context: Option<String>,
},
KeyedServiceNotFound {
key: String,
ty: &'static str,
context: Option<String>,
},
CircularDependency(String),
SingletonDependsOnScoped {
singleton: String,
scoped: String,
},
FactoryPanic {
service: String,
payload: String,
},
OwnedNotSupported(&'static str),
AsyncServiceRequiresBuildAsync {
service: String,
},
ScopedFromRootProvider {
service: String,
},
ProviderDisposed,
ScopeDisposed,
}Expand description
Errors returned by the container.
The enum is #[non_exhaustive]: future releases may add variants without a
semver-major break. Match with a wildcard arm (_ => …) when handling errors.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
ServiceNotFound
KeyedServiceNotFound
CircularDependency(String)
SingletonDependsOnScoped
FactoryPanic
OwnedNotSupported(&'static str)
AsyncServiceRequiresBuildAsync
ScopedFromRootProvider
严格 scope 校验下从 root provider 解析 Scoped 服务。
等价于 MEDI ValidateScopes 的
InvalidOperationException("Cannot resolve scoped service from root provider.")。
ProviderDisposed
provider 已被显式 dispose 或已销毁。
ScopeDisposed
scope 已被显式 dispose 或 Drop 释放。
Implementations§
Source§impl RdiError
impl RdiError
Sourcepub fn not_found(ty: &'static str, context: impl Into<Option<String>>) -> Self
pub fn not_found(ty: &'static str, context: impl Into<Option<String>>) -> Self
Build a ServiceNotFound with an optional consumer context.
Sourcepub fn keyed_not_found(
ty: &'static str,
key: impl Into<String>,
context: impl Into<Option<String>>,
) -> Self
pub fn keyed_not_found( ty: &'static str, key: impl Into<String>, context: impl Into<Option<String>>, ) -> Self
Build a KeyedServiceNotFound with optional context.
Sourcepub fn scoped_from_root(service: &'static str) -> Self
pub fn scoped_from_root(service: &'static str) -> Self
Build a ScopedFromRootProvider for service.
Sourcepub fn from_panic_payload(service: &str, payload: Box<dyn Any + Send>) -> Self
pub fn from_panic_payload(service: &str, payload: Box<dyn Any + Send>) -> Self
Convert a panic::catch_unwind payload into RdiError.
Prefers a panicked RdiError (from inject constructors via panic_any),
then string payloads, otherwise wraps as FactoryPanic.
Trait Implementations§
Source§impl Error for RdiError
impl Error for RdiError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Auto Trait Implementations§
impl Forget for RdiError
impl Freeze for RdiError
impl Move for RdiError
impl RefUnwindSafe for RdiError
impl Send for RdiError
impl Sync for RdiError
impl Unpin for RdiError
impl UnsafeUnpin for RdiError
impl UnwindSafe for RdiError
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