Enum pelite::Error[][src]

pub enum Error {
    Null,
    Bounds,
    ZeroFill,
    Unmapped,
    Misaligned,
    BadMagic,
    PeMagic,
    Insanity,
    Invalid,
    Overflow,
    Encoding,
}

Errors while parsing the PE binary.

Variants

Null address.

Out of bounds.

Catch-all for bounds check errors.

Data is not available.

Can happen when referencing data in PeFile instances.

Sections can be shorter than stored on disk, the remaining bytes will default to zeroes when loaded by the system. Since these zeroes would just be a waste of space, they are not present in the binaries on disk. This error happens when attempting to get a reference to such zero filled data.

Data is not available.

Can happen when referencing data in PeView instances.

Sections can have excess in their raw data which won't be mapped when loaded by the system. This error happens when attempting to get a reference to such unmapped raw data. Sometimes this kind of excess is called an overlay.

Address is misaligned.

Expected magic number does not match.

Trying to load a PE32 file with a PE32+ parser or vice versa.

Sanity check failed.

Some value was so far outside its typical range, while not technically incorrect, probably indicating something went wrong. If this error is encountered legitimately, create an issue or file a PR to relax the artificial restrictions.

Invalid data.

Structured data was found which simply isn't valid. Catch-all for errors which don't fall under other errors.

Overflow error.

Catch-all for overflow and underflow errors.

Encoding error.

Catch-all for string related errors such as lacking a nul terminator.

Methods

impl Error
[src]

Returns if the error variant is Null.

Useful in match guards where Null should be handled as a non-error case.

fn with_default(result: pelite::Result<i32>) -> pelite::Result<i32> {
    let i = match result {
        Ok(i) => i,
        // Avoids a more verbose comparison with pelite::Error::Null
        Err(err) if err.is_null() => 0,
        Err(err) => return Err(err),
    };
    Ok(i)
}

assert_eq!(with_default(Err(pelite::Error::Null)), Ok(0));

Trait Implementations

impl Copy for Error
[src]

impl Clone for Error
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Debug for Error
[src]

Formats the value using the given formatter. Read more

impl Eq for Error
[src]

impl PartialEq for Error
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Hash for Error
[src]

Feeds this value into the given [Hasher]. Read more

Feeds a slice of this type into the given [Hasher]. Read more

impl Display for Error
[src]

Formats the value using the given formatter. Read more

impl Error for Error
[src]

This method is soft-deprecated. Read more

The lower-level cause of this error, if any. Read more

impl From<Error> for FindError
[src]

Performs the conversion.

Auto Trait Implementations

impl Send for Error

impl Sync for Error