elfkit 0.0.7

an elf parser and manipulation library in pure rust
Documentation
use types;
use section::SectionContent;

#[derive(Debug)]
pub enum Error {
    Io(::std::io::Error),
    InvalidMagic,
    InvalidIdentClass(u8),
    InvalidEndianness(u8),
    InvalidIdentVersion(u8),
    InvalidVersion(u32),
    InvalidAbi(u8),
    InvalidElfType(u16),
    InvalidMachineType(u16),
    InvalidHeaderFlags(u32),
    InvalidSectionFlags(u64),
    InvalidSegmentType(u32),
    InvalidSectionType(u32),
    UnsupportedMachineTypeForRelocation(types::Machine),
    InvalidSymbolType(u8),
    InvalidSymbolBind(u8),
    InvalidSymbolVis(u8),
    InvalidDynamicType(u64),
    MissingShstrtabSection,
    LinkedSectionIsNotStrtab{
        during: &'static str,
        link:  Option<SectionContent>,
    },
    InvalidDynamicFlags1(u64),
    FirstSectionOffsetCanNotBeLargerThanAddress,
    MissingSymtabSection,
    LinkedSectionIsNotSymtab,
    UnexpectedSectionContent,
    InvalidSymbolShndx(String, u16),
    DynsymInStaticLibrary,
    SymbolSectionIndexExtendedCannotBeWritten,
    WritingNotSynced,
    SyncingUnloadedSection,
    WritingUnloadedSection,
    NoSymbolsInObject,
    MultipleSymbolSections,
    ConflictingSymbol{
        sym:        String,
        obj1_name:  String,
        obj2_name:  String,
        obj1_hash:  String,
        obj2_hash:  String,
    },
    UndefinedReference{
        sym:    String,
        obj:    String,
    },
    MovingLockedSection{
        sec:        String,
        old_addr:   u64,
        new_addr:   u64,
        cause:      String,
    }
}

impl From<::std::io::Error> for Error {
    fn from(error: ::std::io::Error) -> Self {
        Error::Io(error)
    }
}