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