Skip to main content

sz_rust_capability/
error.rs

1/// Capability Registry 错误类型。
2///
3/// 6 个变体覆盖所有业务错误场景,标注 `#[non_exhaustive]` 允许未来新增变体不破坏外部 match。
4#[derive(Debug, thiserror::Error)]
5#[non_exhaustive]
6pub enum CapError {
7    /// 能力未找到(按名称查找不存在)。
8    #[error("能力未找到: {0}")]
9    NotFound(String),
10    /// 参数校验失败(缺少必填字段或类型不匹配)。
11    #[error("参数校验失败: {0}")]
12    ValidationError(String),
13    /// 能力执行失败(透传能力内部错误)。
14    #[error("执行失败: {0}")]
15    ExecutionError(String),
16    /// 权限不足(上层授权中间件拒绝)。
17    #[error("权限不足: {0}")]
18    PermissionDenied(String),
19    /// 需要人工确认(HITL 闸门)。
20    #[error("需要人工确认")]
21    ConfirmationRequired,
22    /// Registry 未初始化(facade 未调用 `init()`)。
23    #[error("Registry 未初始化")]
24    NotInitialized,
25}
26
27/// Capability Registry Result 类型别名。
28pub type CapResult<T> = Result<T, CapError>;