Skip to main content

MachoContainer

Enum MachoContainer 

Source
pub enum MachoContainer<'data> {
    Thin(MachoFile<'data>),
    Fat(FatBinary<'data>),
}
Expand description

Parsed thin or fat Mach-O input.

Variants§

§

Thin(MachoFile<'data>)

One standalone Mach-O image.

§

Fat(FatBinary<'data>)

A validated non-empty fat container.

Implementations§

Source§

impl<'data> MachoContainer<'data>

Source

pub fn bytes(&self) -> &'data [u8] ⓘ

Complete bytes of the original thin or universal Mach-O input.

Source

pub fn is_thin(&self) -> bool

Whether the container is thin.

Source

pub fn is_fat(&self) -> bool

Whether the container is fat.

Source

pub fn macho_files(&self) -> MachoFiles<'_, 'data> ⓘ

Iterate parsed images without allocating a temporary collection.

Source

pub fn first_macho(&self) -> Option<&MachoFile<'data>>

Return the first image when one exists.

Source

pub fn find_arch(&self, cpu_type: CpuType) -> Option<&MachoFile<'data>>

Find an image by CPU type.

Source

pub fn find_arch_spec( &self, cpu_type: CpuType, cpu_subtype: CpuSubtype, ) -> Option<&MachoFile<'data>>

Find an image by CPU type and masked subtype.

Source

pub fn select_exact( &self, key: SelectionKey, ) -> Result<SelectedImage<'_, 'data>, ParseError>

Select exactly one image by table index and architecture.

This is the canonical selection boundary for consumers that retain an image identity across parse, inspection, and mutation. Both fields are checked so a stale index cannot silently retarget after container drift.

Trait Implementations§

Source§

impl Debug for MachoContainer<'_>

Source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'data> Freeze for MachoContainer<'data>

§

impl<'data> RefUnwindSafe for MachoContainer<'data>

§

impl<'data> Send for MachoContainer<'data>

§

impl<'data> Sync for MachoContainer<'data>

§

impl<'data> Unpin for MachoContainer<'data>

§

impl<'data> UnsafeUnpin for MachoContainer<'data>

§

impl<'data> UnwindSafe for MachoContainer<'data>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.