Skip to main content

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>;