32 lines
974 B
Rust
32 lines
974 B
Rust
//! 执行层错误类型(中文,不含密钥明文)
|
|
|
|
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 {}
|