pub unsafe trait Tag: Copy {
const BITS: u32;
// Required methods
fn into_usize(self) -> usize;
unsafe fn from_usize(tag: usize) -> Self;
}
Expand description
Required Associated Constants§
Sourceconst BITS: u32
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§
Sourcefn into_usize(self) -> usize
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.
Sourceunsafe fn from_usize(tag: usize) -> Self
unsafe fn from_usize(tag: usize) -> Self
Re-creates the tag from the integer returned by into_usize
.
§Safety
The passed tag
must be returned from into_usize
.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.