Struct rustc_mir::interpret::Allocation [−][src]
pub struct Allocation<Tag = (), Extra = ()> { bytes: Vec<u8, Global>, relocations: Relocations<Tag, AllocId>, 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: Vec<u8, Global>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: 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
Mutably borrows from an owned value. 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.