Skip to main content

Extent

Struct Extent 

Source
pub struct Extent {
    pub name: String,
    pub start: usize,
    pub len: usize,
    pub align: u32,
    pub binding: Binding,
    pub visibility: Visibility,
}
Expand description

Where one function ended up.

How long a function is is a fact ELF records and Mach-O has no way to, so it is handed over rather than worked out again: the writer that wants it has it and the one that does not ignores it.

Fields§

§name: String

The function’s name, as the C program spelled it. The underscore an Apple symbol carries is the object writer’s business, not this one’s.

§start: usize

Where its first instruction is.

§len: usize

How many bytes of instructions it is, not counting the padding in front of the next one.

§align: u32

What this one function asked to be aligned to, which is not always what the section it is in was aligned to.

The two are the same number only when this function is the one that asked for the most. Under Sections::functions each function is a section of its own and this is what that section is aligned to, so the number has to survive the trip rather than be recovered from the offset, which says nothing once the function is at zero in a section of its own.

§binding: Binding

How the linker sees the name, which is what the C static reaches the object file as.

§visibility: Visibility

How far outside a shared library holding this the name reaches.

Trait Implementations§

Source§

impl Clone for Extent

Source§

fn clone(&self) -> Extent

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Extent

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Eq for Extent

Source§

impl PartialEq for Extent

Source§

fn eq(&self, other: &Extent) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Extent

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.