Struct rustc_const_eval::interpret::Allocation
source · [−]pub struct Allocation<Tag = AllocId, Extra = ()> {
bytes: Box<[u8], Global>,
relocations: Relocations<Tag>,
init_mask: InitMask,
pub align: Align,
pub mutability: Mutability,
pub extra: Extra,
}Expand description
This type represents an Allocation in the Miri/CTFE core engine.
Its public API is rather low-level, working directly with allocation offsets and a custom error
type to account for the lack of an AllocId on this level. The Miri/CTFE core engine memory
module provides higher-level access.
Fields
bytes: Box<[u8], Global>The actual bytes of the allocation. Note that the bytes of a pointer represent the offset of the pointer.
relocations: Relocations<Tag>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: InitMaskDenotes which part of this allocation is initialized.
align: AlignThe alignment of the allocation to detect unaligned reads.
(Align guarantees that this is a power of two.)
mutability: Mutabilitytrue 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: ExtraExtra 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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more
Layout
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.