Trait rustc_data_structures::tagged_ptr::Tag

source ·
pub unsafe trait Tag: Copy {
    const BITS: u32;

    // Required methods
    fn into_usize(self) -> usize;
    unsafe fn from_usize(tag: usize) -> Self;
Expand description

This describes tags that the TaggedPtr struct can hold.


The BITS constant must be correct.

No more than BITS least-significant bits may be set in the returned usize.

Required Associated Constants§


const BITS: u32

Number of least-significant bits in the return value of into_usize which may be non-zero. In other words this is the bit width of the value.

Required Methods§


fn into_usize(self) -> usize

Turns this tag into an integer.

The inverse of this function is from_usize.

This function guarantees that only the least-significant Self::BITS bits can be non-zero.


unsafe fn from_usize(tag: usize) -> Self

Re-creates the tag from the integer returned by into_usize.


The passed tag must be returned from into_usize.

Object Safety§

This trait is not object safe.