object::read::macho

Trait Segment

Source
pub trait Segment: Debug + Pod {
    type Word: Into<u64>;
    type Endian: Endian;
    type Section: Section<Endian = Self::Endian>;

Show 16 methods // Required methods fn from_command( command: LoadCommandData<'_, Self::Endian>, ) -> Result<Option<(&Self, &[u8])>>; fn cmd(&self, endian: Self::Endian) -> u32; fn cmdsize(&self, endian: Self::Endian) -> u32; fn segname(&self) -> &[u8; 16]; fn vmaddr(&self, endian: Self::Endian) -> Self::Word; fn vmsize(&self, endian: Self::Endian) -> Self::Word; fn fileoff(&self, endian: Self::Endian) -> Self::Word; fn filesize(&self, endian: Self::Endian) -> Self::Word; fn maxprot(&self, endian: Self::Endian) -> u32; fn initprot(&self, endian: Self::Endian) -> u32; fn nsects(&self, endian: Self::Endian) -> u32; fn flags(&self, endian: Self::Endian) -> u32; // Provided methods fn name(&self) -> &[u8] { ... } fn file_range(&self, endian: Self::Endian) -> (u64, u64) { ... } fn data<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<&'data [u8], ()> { ... } fn sections<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, section_data: R, ) -> Result<&'data [Self::Section]> { ... }
}
Expand description

A trait for generic access to SegmentCommand32 and SegmentCommand64.

Required Associated Types§

Required Methods§

Source

fn from_command( command: LoadCommandData<'_, Self::Endian>, ) -> Result<Option<(&Self, &[u8])>>

Source

fn cmd(&self, endian: Self::Endian) -> u32

Source

fn cmdsize(&self, endian: Self::Endian) -> u32

Source

fn segname(&self) -> &[u8; 16]

Source

fn vmaddr(&self, endian: Self::Endian) -> Self::Word

Source

fn vmsize(&self, endian: Self::Endian) -> Self::Word

Source

fn fileoff(&self, endian: Self::Endian) -> Self::Word

Source

fn filesize(&self, endian: Self::Endian) -> Self::Word

Source

fn maxprot(&self, endian: Self::Endian) -> u32

Source

fn initprot(&self, endian: Self::Endian) -> u32

Source

fn nsects(&self, endian: Self::Endian) -> u32

Source

fn flags(&self, endian: Self::Endian) -> u32

Provided Methods§

Source

fn name(&self) -> &[u8]

Return the segname bytes up until the null terminator.

Source

fn file_range(&self, endian: Self::Endian) -> (u64, u64)

Return the offset and size of the segment in the file.

Source

fn data<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<&'data [u8], ()>

Get the segment data from the file data.

Returns Err for invalid values.

Source

fn sections<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, section_data: R, ) -> Result<&'data [Self::Section]>

Get the array of sections from the data following the segment command.

Returns Err for invalid values.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§