use thiserror::Error; #[derive(Error, Debug)] pub enum PEParseError { #[error("无效的DOSMagic值")] InvalidDOSMagic, #[error("Invalid NT header signature")] InvalidNTSignature, #[error("Invalid optional header magic number")] InvalidOptionalMagic, #[error("Invalid optional header size")] InvalidOptionalSize, #[error("解析超出了文件范围")] OutOfBounds, } /// PE操作的错误 #[derive(Error, Debug)] pub enum MutablePEError { // 兼容PE解析错误 #[error(transparent)] PEParseError(#[from] PEParseError), // 头部映射无法扩容,超出最大可扩容范围 #[error("头部映射无法扩容, 需要扩容大小:{0:#X},超过了最大可扩容范围:{1:#X}")] CannotExpandHeader(u32, u32), // 文件大小不足,无法扩容 #[error("文件大小不足,无法扩容! 需要的大小:{0:#X}, 当前的文件大小:{1:#X}")] CannotExpandFileSize(u32, u32), }