[−][src]Enum rustc_mir::interpret::MemPlaceMeta

pub enum MemPlaceMeta<Tag = ()> {
    Meta(Scalar<Tag>),
    None,
    Poison,
}

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.

Implementations

impl<Tag> MemPlaceMeta<Tag>[src]

pub fn unwrap_meta(self) -> Scalar<Tag>[src]

pub(in interpret::place) fn has_meta(
    self
) -> bool
[src]

pub fn erase_tag(self) -> MemPlaceMeta<()>[src]

Trait Implementations

impl<Tag: Clone> Clone for MemPlaceMeta<Tag>[src]

impl<Tag: Copy> Copy for MemPlaceMeta<Tag>[src]

impl<Tag: Debug> Debug for MemPlaceMeta<Tag>[src]

impl<Tag: Eq> Eq for MemPlaceMeta<Tag>[src]

impl<Tag: Hash> Hash for MemPlaceMeta<Tag>[src]

impl<'__ctx, Tag> HashStable<StableHashingContext<'__ctx>> for MemPlaceMeta<Tag> where
    Tag: HashStable<StableHashingContext<'__ctx>>, 
[src]

impl<Tag: PartialEq> PartialEq<MemPlaceMeta<Tag>> for MemPlaceMeta<Tag>[src]

impl<Tag> StructuralEq for MemPlaceMeta<Tag>[src]

impl<Tag> StructuralPartialEq for MemPlaceMeta<Tag>[src]

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

impl<T> Any for T where
    T: 'static + ?Sized, 
[src]

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone, 
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> WithConstness for T[src]