[][src]Trait object::read::ObjectSection

pub trait ObjectSection<'data>: Sealed {
    type RelocationIterator: Iterator<Item = (u64, Relocation)>;
    pub fn index(&self) -> SectionIndex;
pub fn address(&self) -> u64;
pub fn size(&self) -> u64;
pub fn align(&self) -> u64;
pub fn file_range(&self) -> Option<(u64, u64)>;
pub fn data(&self) -> Result<&'data [u8]>;
pub fn data_range(
        &self,
        address: u64,
        size: u64
    ) -> Result<Option<&'data [u8]>>;
pub fn compressed_data(&self) -> Result<CompressedData<'data>>;
pub fn name(&self) -> Result<&str>;
pub fn segment_name(&self) -> Result<Option<&str>>;
pub fn kind(&self) -> SectionKind;
pub fn relocations(&self) -> Self::RelocationIterator;
pub fn flags(&self) -> SectionFlags; pub fn uncompressed_data(&self) -> Result<Cow<'data, [u8]>> { ... } }

A section defined in an object file.

Associated Types

type RelocationIterator: Iterator<Item = (u64, Relocation)>[src]

An iterator over the relocations for a section.

The first field in the item tuple is the section offset that the relocation applies to.

Loading content...

Required methods

pub fn index(&self) -> SectionIndex[src]

Returns the section index.

pub fn address(&self) -> u64[src]

Returns the address of the section.

pub fn size(&self) -> u64[src]

Returns the size of the section in memory.

pub fn align(&self) -> u64[src]

Returns the alignment of the section in memory.

pub fn file_range(&self) -> Option<(u64, u64)>[src]

Returns offset and size of on-disk segment (if any).

pub fn data(&self) -> Result<&'data [u8]>[src]

Returns the raw contents of the section.

The length of this data may be different from the size of the section in memory.

This does not do any decompression.

pub fn data_range(&self, address: u64, size: u64) -> Result<Option<&'data [u8]>>[src]

Return the raw contents of the section data in the given range.

This does not do any decompression.

Returns Ok(None) if the section does not contain the given range.

pub fn compressed_data(&self) -> Result<CompressedData<'data>>[src]

Returns the potentially compressed contents of the section, along with information about the compression.

pub fn name(&self) -> Result<&str>[src]

Returns the name of the section.

pub fn segment_name(&self) -> Result<Option<&str>>[src]

Returns the name of the segment for this section.

pub fn kind(&self) -> SectionKind[src]

Return the kind of this section.

pub fn relocations(&self) -> Self::RelocationIterator[src]

Get the relocations for this section.

pub fn flags(&self) -> SectionFlags[src]

Section flags that are specific to each file format.

Loading content...

Provided methods

pub fn uncompressed_data(&self) -> Result<Cow<'data, [u8]>>[src]

Returns the uncompressed contents of the section.

The length of this data may be different from the size of the section in memory.

If no compression is detected, then returns the data unchanged. Returns Err if decompression fails.

Loading content...

Implementors

impl<'data, 'file> ObjectSection<'data> for CoffSection<'data, 'file>[src]

type RelocationIterator = CoffRelocationIterator<'data, 'file>

impl<'data, 'file> ObjectSection<'data> for Section<'data, 'file>[src]

type RelocationIterator = RelocationIterator<'data, 'file>

impl<'data, 'file, Elf: FileHeader> ObjectSection<'data> for ElfSection<'data, 'file, Elf>[src]

type RelocationIterator = ElfRelocationIterator<'data, 'file, Elf>

impl<'data, 'file, Mach: MachHeader> ObjectSection<'data> for MachOSection<'data, 'file, Mach>[src]

type RelocationIterator = MachORelocationIterator<'data, 'file, Mach>

impl<'data, 'file, Pe: ImageNtHeaders> ObjectSection<'data> for PeSection<'data, 'file, Pe>[src]

type RelocationIterator = PeRelocationIterator<'data, 'file>

Loading content...