pub trait MachHeader: Debug + Pod {
    type Word: Into<u64>;
    type Endian: Endian;
    type Segment: Segment<Endian = Self::Endian, Section = Self::Section>;
    type Section: Section<Endian = Self::Endian>;
    type Nlist: Nlist<Endian = Self::Endian>;
Show 15 methods
    // Required methods
    fn is_type_64(&self) -> bool;
    fn is_big_endian(&self) -> bool;
    fn is_little_endian(&self) -> bool;
    fn magic(&self) -> u32;
    fn cputype(&self, endian: Self::Endian) -> u32;
    fn cpusubtype(&self, endian: Self::Endian) -> u32;
    fn filetype(&self, endian: Self::Endian) -> u32;
    fn ncmds(&self, endian: Self::Endian) -> u32;
    fn sizeofcmds(&self, endian: Self::Endian) -> u32;
    fn flags(&self, endian: Self::Endian) -> u32;
    // Provided methods
    fn parse<'data, R: ReadRef<'data>>(
        data: R,
        offset: u64,
    ) -> Result<&'data Self> { ... }
    fn is_supported(&self) -> bool { ... }
    fn endian(&self) -> Result<Self::Endian> { ... }
    fn load_commands<'data, R: ReadRef<'data>>(
        &self,
        endian: Self::Endian,
        data: R,
        header_offset: u64,
    ) -> Result<LoadCommandIterator<'data, Self::Endian>> { ... }
    fn uuid<'data, R: ReadRef<'data>>(
        &self,
        endian: Self::Endian,
        data: R,
        header_offset: u64,
    ) -> Result<Option<[u8; 16]>> { ... }
}Expand description
A trait for generic access to macho::MachHeader32 and macho::MachHeader64.
Required Associated Types§
type Word: Into<u64>
type Endian: Endian
type Segment: Segment<Endian = Self::Endian, Section = Self::Section>
type Section: Section<Endian = Self::Endian>
type Nlist: Nlist<Endian = Self::Endian>
Required Methods§
Sourcefn is_type_64(&self) -> bool
 
fn is_type_64(&self) -> bool
Return true if this type is a 64-bit header.
This is a property of the type, not a value in the header data.
Sourcefn is_big_endian(&self) -> bool
 
fn is_big_endian(&self) -> bool
Return true if the magic field signifies big-endian.
Sourcefn is_little_endian(&self) -> bool
 
fn is_little_endian(&self) -> bool
Return true if the magic field signifies little-endian.
fn magic(&self) -> u32
fn cputype(&self, endian: Self::Endian) -> u32
fn cpusubtype(&self, endian: Self::Endian) -> u32
fn filetype(&self, endian: Self::Endian) -> u32
fn ncmds(&self, endian: Self::Endian) -> u32
fn sizeofcmds(&self, endian: Self::Endian) -> u32
fn flags(&self, endian: Self::Endian) -> u32
Provided Methods§
Sourcefn parse<'data, R: ReadRef<'data>>(data: R, offset: u64) -> Result<&'data Self>
 
fn parse<'data, R: ReadRef<'data>>(data: R, offset: u64) -> Result<&'data Self>
Read the file header.
Also checks that the magic field in the file header is a supported format.
fn is_supported(&self) -> bool
fn endian(&self) -> Result<Self::Endian>
fn load_commands<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, header_offset: u64, ) -> Result<LoadCommandIterator<'data, Self::Endian>>
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.