Module rustc_data_structures::tagged_ptr
source · Expand description
This module implements tagged pointers.
In order to utilize the pointer packing, you must have two types: a pointer, and a tag.
The pointer must implement the Pointer
trait, with the primary
requirement being convertible to and from a raw pointer. Note that the
pointer must be dereferenceable, so raw pointers generally cannot implement
the Pointer
trait. This implies that the pointer must also be non-null.
Many common pointer types already implement the Pointer
trait.
The tag must implement the Tag
trait.
We assert that the tag and the Pointer
types are compatible at compile
time.
Modules
Structs
Traits
- This describes the pointer type encapsulated by
TaggedPtr
andCopyTaggedPtr
. - This describes tags that the
TaggedPtr
struct can hold.
Functions
- Returns the number of bits available for use for tags in a pointer to
T
(this is based onT
’s alignment). - Returns the correct
Tag::BITS
constant for a set of tag values.