tx_di_core/error.rs
1//! tx-di-core 错误处理
2//!
3//! 本 crate 不再定义独立的错误类型,全部复用 [`tx_error::AppError`]。
4//! - 注入失败:`AppError` + `DiErr::InjectError`(具体上下文写入 `context()`)
5//! - 注册/拓扑失败:`AppError` + `DiErr::RegistryError`(具体上下文写入 `context()`)
6//!
7//! 调用方可通过 `err.domain()` / `err.code()` 判定错误大类,
8//! 通过 `err.context()` 取得详细描述。
9
10
11pub use tx_error::{AppError, AppResult};
12use crate::CodeMsg;
13
14/// DI 框架自身的业务错误码。
15#[derive(Debug, Copy, Clone, PartialEq, Eq, CodeMsg)]
16#[err("DI")]
17pub enum DiErr {
18 #[err(-1, "组件注册表错误")]
19 RegistryError,
20 #[err(-2, "async_init_fn 错误")]
21 AsyncInitError,
22 #[err(-3, "任务 panic")]
23 TaskPanic,
24 #[err(-4, "组件注入错误")]
25 InjectError,
26}