Struct object::read::elf::SectionTable[][src]

pub struct SectionTable<'data, Elf: FileHeader> { /* fields omitted */ }

The table of section headers in an ELF file.

Also includes the string table used for the section names.

Implementations

impl<'data, Elf: FileHeader> SectionTable<'data, Elf>[src]

pub fn new(
    sections: &'data [Elf::SectionHeader],
    strings: StringTable<'data>
) -> Self
[src]

Create a new section table.

pub fn iter(&self) -> Iter<'data, Elf::SectionHeader>[src]

Iterate over the section headers.

pub fn is_empty(&self) -> bool[src]

Return true if the section table is empty.

pub fn len(&self) -> usize[src]

The number of section headers.

pub fn section(&self, index: usize) -> Result<&'data Elf::SectionHeader>[src]

Return the section header at the given index.

pub fn section_by_name(
    &self,
    endian: Elf::Endian,
    name: &[u8]
) -> Option<(usize, &'data Elf::SectionHeader)>
[src]

Return the section header with the given name.

Ignores sections with invalid names.

pub fn section_name(
    &self,
    endian: Elf::Endian,
    section: &'data Elf::SectionHeader
) -> Result<&'data [u8]>
[src]

Return the section name for the given section header.

pub fn symbols(
    &self,
    endian: Elf::Endian,
    data: Bytes<'data>,
    sh_type: u32
) -> Result<SymbolTable<'data, Elf>>
[src]

Return the symbol table of the given section type.

Returns an empty symbol table if the symbol table does not exist.

pub fn symbol_table_by_index(
    &self,
    endian: Elf::Endian,
    data: Bytes<'data>,
    index: usize
) -> Result<SymbolTable<'data, Elf>>
[src]

Return the symbol table at the given section index.

Returns an error if the section is not a symbol table.

pub fn relocation_sections(
    &self,
    endian: Elf::Endian,
    symbol_section: usize
) -> Result<RelocationSections>
[src]

Create a mapping from section index to associated relocation sections.

Trait Implementations

impl<'data, Elf: Clone + FileHeader> Clone for SectionTable<'data, Elf> where
    Elf::SectionHeader: Clone
[src]

impl<'data, Elf: Copy + FileHeader> Copy for SectionTable<'data, Elf> where
    Elf::SectionHeader: Copy
[src]

impl<'data, Elf: Debug + FileHeader> Debug for SectionTable<'data, Elf> where
    Elf::SectionHeader: Debug
[src]

impl<'data, Elf: Default + FileHeader> Default for SectionTable<'data, Elf> where
    Elf::SectionHeader: Default
[src]

Auto Trait Implementations

impl<'data, Elf> Send for SectionTable<'data, Elf> where
    <Elf as FileHeader>::SectionHeader: Sync

impl<'data, Elf> Sync for SectionTable<'data, Elf> where
    <Elf as FileHeader>::SectionHeader: Sync

impl<'data, Elf> Unpin for SectionTable<'data, Elf>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.