Files
ncmmiao/src/apperror.rs
lkhsss 122d4e251d - 当未指定输入文件时使用-a参数仍然可以打开输出目录
- 更换终端彩色库以支持Windows默认不启用ANSI转义序列的终端
2025-09-07 14:59:35 +08:00

43 lines
1.5 KiB
Rust

#[derive(Debug, PartialEq)]
#[allow(dead_code)]
pub enum AppError {
NotNcmFile,
CannotReadFileName,
CannotReadMetaInfo,
CoverCannotSave,
FileReadError,
FileSkipError,
FileWriteError,
FullFilenameError,
FileNotFound,
ProtectFile,
FileDataError,
SaveError,
SystemTimeError,
CannotCreateDir,
}
impl std::error::Error for AppError {}
impl std::fmt::Display for AppError {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
let result = match self {
Self::NotNcmFile => "该文件不为NCM格式",
Self::CannotReadFileName => "无法读取文件名称",
Self::CannotReadMetaInfo => "无法读取歌曲元信息",
Self::CoverCannotSave => "封面无法保存",
Self::FileSkipError => "跳过数据时出错。可能是文件大小小于预期",
Self::FileReadError => "读取文件时发生错误",
Self::FileWriteError => "写入文件时错误",
Self::FullFilenameError => "文件名不符合规范",
Self::FileNotFound => "未找到文件",
Self::ProtectFile => "已关闭文件强制覆盖且文件已存在。使用-f或-forcesave开启强制覆盖。",
Self::FileDataError => "处理文件数据时出错",
Self::SaveError => "保存文件出错",
Self::SystemTimeError => "获取时间戳失败",
Self::CannotCreateDir => "无法创建父级目录", // _ => "未知错误",
};
write!(f, "{}", result)
}
}