Struct rustc_mir::interpret::Allocation[−][src]

pub struct Allocation<Tag = (), Extra = ()> {
    bytes: Vec<u8, Global>,
    relocations: Relocations<Tag, AllocId>,
    init_mask: InitMask,
    pub size: Size,
    pub align: Align,
    pub mutability: Mutability,
    pub extra: Extra,
}

Fields

bytes: Vec<u8, Global>
Expand description

The actual bytes of the allocation. Note that the bytes of a pointer represent the offset of the pointer.

relocations: Relocations<Tag, AllocId>
Expand description

Maps from byte addresses to extra data for each pointer. Only the first byte of a pointer is inserted into the map; i.e., every entry in this map applies to pointer_size consecutive bytes starting at the given offset.

init_mask: InitMask
Expand description

Denotes which part of this allocation is initialized.

size: Size
Expand description

The size of the allocation. Currently, must always equal bytes.len().

align: Align
Expand description

The alignment of the allocation to detect unaligned reads. (Align guarantees that this is a power of two.)

mutability: Mutability
Expand description

true if the allocation is mutable. Also used by codegen to determine if a static should be put into mutable memory, which happens for static mut and static with interior mutability.

extra: Extra
Expand description

Extra state for the machine.

Auto Trait Implementations

impl<Tag, Extra> RefUnwindSafe for Allocation<Tag, Extra> where
    Extra: RefUnwindSafe,
    Tag: RefUnwindSafe, 

impl<Tag, Extra> Send for Allocation<Tag, Extra> where
    Extra: Send,
    Tag: Send, 

impl<Tag, Extra> Sync for Allocation<Tag, Extra> where
    Extra: Sync,
    Tag: Sync, 

impl<Tag, Extra> Unpin for Allocation<Tag, Extra> where
    Extra: Unpin,
    Tag: Unpin, 

impl<Tag, Extra> UnwindSafe for Allocation<Tag, Extra> where
    Extra: UnwindSafe,
    Tag: UnwindSafe, 

Blanket Implementations

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

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone, 
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

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

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T> WithConstness for T[src]

fn with_constness(self, constness: Constness) -> ConstnessAnd<Self>[src]

fn with_const(self) -> ConstnessAnd<Self>[src]

fn without_const(self) -> ConstnessAnd<Self>[src]