#[derive(thiserror::Error, Debug)]
pub enum PeError {
#[error("invalid DOS magic")]
InvalidDosMagic,
#[error("invalid DOS header size or alignment")]
InvalidDosHeader,
#[error("invalid NT headers size or alignment")]
InvalidNtHeaders,
#[error("invalid PE magic")]
InvalidPeMagic,
#[error("invalid PE optional header magic")]
InvalidOptionalHeaderMagic,
#[error("PE optional header too small")]
OptionalHeaderTooSmall,
#[error("invalid PE optional header size")]
InvalidOptionalHeaderSize,
#[error("invalid data directory count")]
InvalidDataDirectoryCount,
#[error("invalid export table")]
InvalidExportTable,
#[error("invalid section table")]
InvalidSectionTable,
#[error("invalid RVA: {0}")]
InvalidRva(u32),
}