Skip to main content

Growing

Enum Growing 

Source
pub enum Growing {
    Huge,
    Aligned,
    Probed,
}
Expand description

What the frame could not do about a stack slot.

Variants§

§

Huge

An object of a size the number a frame counts bytes in does not reach.

§

Aligned

A variable length array wanting more alignment than a call leaves the stack pointer with.

Rounding the stack pointer down again after the bytes have been taken would put it somewhere no constant reaches the rest of the frame from, so a frame like this needs a second base register held for the whole of the function. Nothing here holds one.

§

Probed

A variable length array in a function whose frame is meant to be touched a page at a time.

The pages a prologue takes are touched by the prologue, which knows how many there are when it is written. The pages a variable length array takes are not known until the declaration runs, so touching them is a loop next to the declaration, and there is no loop here yet.

Implementations§

Source§

impl Growing

Source

pub fn why(self) -> &'static str

The rest of the sentence that starts with the slot.

Trait Implementations§

Source§

impl Clone for Growing

Source§

fn clone(&self) -> Growing

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 Copy for Growing

Source§

impl Debug for Growing

Source§

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

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

impl Eq for Growing

Source§

impl PartialEq for Growing

Source§

fn eq(&self, other: &Growing) -> 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 Growing

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<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.