Struct miri::Allocation
source · pub struct Allocation<Prov = AllocId, Extra = ()>where
Prov: Provenance,{
bytes: Box<[u8], Global>,
provenance: ProvenanceMap<Prov>,
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>
§provenance: ProvenanceMap<Prov>
§init_mask: InitMask
§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.
Trait Implementations§
source§impl VisitTags for Allocation<Provenance, AllocExtra>
impl VisitTags for Allocation<Provenance, AllocExtra>
Auto Trait Implementations§
impl<Prov, Extra> RefUnwindSafe for Allocation<Prov, Extra>where
Extra: RefUnwindSafe,
Prov: RefUnwindSafe,
impl<Prov, Extra> Send for Allocation<Prov, Extra>where
Extra: Send,
Prov: Send,
impl<Prov, Extra> Sync for Allocation<Prov, Extra>where
Extra: Sync,
Prov: Sync,
impl<Prov, Extra> Unpin for Allocation<Prov, Extra>where
Extra: Unpin,
Prov: Unpin,
impl<Prov, Extra> UnwindSafe for Allocation<Prov, Extra>where
Extra: UnwindSafe,
Prov: UnwindSafe,
Blanket Implementations§
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.