pub enum CoreError {
Show 13 variants
InvalidDelegation(String),
InvalidIntent(String),
UnknownDelegation(String),
DuplicateDelegation(String),
LedgerOverflow(String),
CommitRejected(String),
WalIo(String),
WalLocked {
path: String,
message: String,
},
WalBadLine {
line: u64,
message: String,
},
WalChainBroken {
line: u64,
message: String,
},
WalMismatch {
line: u64,
message: String,
},
AnchorInvalid(String),
AnchorMismatch(String),
}Variants§
InvalidDelegation(String)
委托注册被拒:字段非法(空 id / 预算为 0 / 有效期倒挂等)。fail-closed:宁可注册失败。
InvalidIntent(String)
意图非法:金额或 nonce 为 0、必填字段为空。
UnknownDelegation(String)
引用了不存在的委托(撤销/查询)。
DuplicateDelegation(String)
委托 id 重复注册。
LedgerOverflow(String)
账本累计溢出(u64)。状态异常,fail-closed:宁可报错也不回绕把巨额记成小额。
CommitRejected(String)
在闸未放行的情况下调用了 commit(API 误用,程序员错误)。
正常流程是 evaluate → (写审计) → commit;直接 commit 会被这里拦下。
WalIo(String)
WAL 打开/读写失败。
WalLocked
单写者锁被占:同一份 WAL 已有另一个活着的写进程。fail-closed 拒启—— 两个闸共写一份审计 = 预算硬上限失效、同一 nonce 跨进程放行两次。
WalBadLine
WAL 里有一行读不懂(半行 JSON / 空行 / 未知结构)。绝不静默跳过。
WalChainBroken
WAL 完整性链断裂(seq 与物理行号不符 / prev 与按前文重算的链值不符)。
这是日志被改(改字段/删行/重排/复制)的痕迹,fail-closed 拒读拒续写。
WalMismatch
回放时重算结果与记录不一致(日志被改 / 实时与回放口径漂移)。fail-closed 停机。
AnchorInvalid(String)
审计锚点文件非法:格式/字段读不懂,或 MAC 与老板密钥对不上(锚点不是 老板签的,或锚点本身被改)。fail-closed:不可信的锚点比没有锚点更危险。
AnchorMismatch(String)
当前 WAL 与合法锚点不符:整体截尾(行数不足)或被锚定的前缀内容被改。 这是 W-21 完整性链已知边界(尾行篡改/截尾本地验不住)的抓法。
Trait Implementations§
impl Eq for CoreError
Source§impl Error for CoreError
impl Error for CoreError
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()
impl StructuralPartialEq for CoreError
Auto Trait Implementations§
impl Freeze for CoreError
impl RefUnwindSafe for CoreError
impl Send for CoreError
impl Sync for CoreError
impl Unpin for CoreError
impl UnsafeUnpin for CoreError
impl UnwindSafe for CoreError
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