Struct rustc_const_eval::interpret::Allocation [−][src]
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: InitMask
Denotes which part of this allocation is initialized.
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
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.