use std::fmt;
#[derive(Debug)]
pub enum DomainError {
PermissionDenied,
SystemCommandFailed(String),
ParseError(String),
PreconditionFailed(String),
#[allow(dead_code)]
UserAborted,
}
impl fmt::Display for DomainError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::PermissionDenied => write!(f, "需要 root 权限运行"),
Self::SystemCommandFailed(msg) => write!(f, "系统命令执行失败: {msg}"),
Self::ParseError(msg) => write!(f, "配置解析错误: {msg}"),
Self::PreconditionFailed(msg) => write!(f, "前置条件不满足: {msg}"),
Self::UserAborted => write!(f, "用户取消操作"),
}
}
}
impl std::error::Error for DomainError {}