Enum miri::MemPlaceMeta
source · [−]pub enum MemPlaceMeta<Tag = AllocId> where
Tag: Provenance, {
Meta(Scalar<Tag>),
None,
Poison,
}Expand description
Information required for the sound usage of a MemPlace.
Variants
Meta(Scalar<Tag>)
The unsized payload (e.g. length for slices or vtable pointer for trait objects).
None
Sized types or unsized extern type
Poison
The address of this place may not be taken. This protects the MemPlace from coming from
a ZST Operand without a backing allocation and being converted to an integer address. This
should be impossible, because you can’t take the address of an operand, but this is a second
protection layer ensuring that we don’t mess up.
Auto Trait Implementations
impl<Tag> RefUnwindSafe for MemPlaceMeta<Tag> where
Tag: RefUnwindSafe,
impl<Tag> Send for MemPlaceMeta<Tag> where
Tag: Send,
impl<Tag> Sync for MemPlaceMeta<Tag> where
Tag: Sync,
impl<Tag> Unpin for MemPlaceMeta<Tag> where
Tag: Unpin,
impl<Tag> UnwindSafe for MemPlaceMeta<Tag> where
Tag: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
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.