pub enum ExportInfo<'a> {
    Regular {
        address: u64,
        flags: u64,
    },
    Reexport {
        lib: &'a str,
        lib_symbol_name: Option<&'a str>,
        flags: u64,
    },
    Stub {
        stub_offset: Uleb128,
        resolver_offset: Uleb128,
        flags: u64,
    },
}
Expand description

An export can be a regular export, a re-export, or a stub

Variants

Regular

Fields

address: u64
flags: u64

A regular exported symbol, which is an address where it is found, and the flags associated with it

Reexport

Fields

lib: &'a str
lib_symbol_name: Option<&'a str>
flags: u64

if lib_symbol_name None then same symbol name, otherwise reexport of lib_symbol_name with name in the trie “If the string is zero length, then the symbol is re-export from the specified dylib with the same name”

Stub

Fields

stub_offset: Uleb128
resolver_offset: Uleb128
flags: u64

If the flags is EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER, then following the flags are two Uleb128s: the stub offset and the resolver offset. The stub is used by non-lazy pointers. The resolver is used by lazy pointers and must be called to get the actual address to use

Implementations

Parse out the export info from bytes, at offset

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.