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

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

Fields

bytes: Vec<u8>

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

relocations: Relocations<Tag, AllocId>

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

Denotes which part of this allocation is initialized.

size: Size

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

align: Align

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

mutability: Mutability

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

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]

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

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

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

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

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

type Owned = T

The resulting type after obtaining ownership.

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.

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.

impl<T> WithConstness for T[src]