feat(wave-1): 适配器框架与安全基座(schema校验/dry-run/exec沙箱/密钥库/日志脱敏/字段拆分)
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
//! 执行层错误类型(中文,不含密钥明文)
|
||||
|
||||
use std::fmt;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub enum ExecError {
|
||||
/// 参数含 shell 元字符等危险输入
|
||||
DangerousInput(String),
|
||||
/// 参数槽位白名单校验失败
|
||||
InvalidSlot(String),
|
||||
/// 工作目录越界
|
||||
CwdNotAllowed(String),
|
||||
/// 进程启动失败
|
||||
Spawn(String),
|
||||
/// 非零退出码
|
||||
NonZeroExit(String),
|
||||
}
|
||||
|
||||
impl fmt::Display for ExecError {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
match self {
|
||||
ExecError::DangerousInput(m) => write!(f, "危险输入: {m}"),
|
||||
ExecError::InvalidSlot(m) => write!(f, "参数校验失败: {m}"),
|
||||
ExecError::CwdNotAllowed(m) => write!(f, "工作目录越界: {m}"),
|
||||
ExecError::Spawn(m) => write!(f, "进程启动失败: {m}"),
|
||||
ExecError::NonZeroExit(m) => write!(f, "命令非零退出: {m}"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl std::error::Error for ExecError {}
|
||||
Reference in New Issue
Block a user