pub trait TaggedPointerValue {
// Provided methods
fn as_untagged_ptr(this: Self) -> usize
where Self: Sized { ... }
fn from_untagged_ptr(untagged_ptr: usize) -> Self
where Self: Sized { ... }
fn unwrap(untagged_ptr: usize) -> Self
where Self: Sized { ... }
fn drop_inner(untagged_ptr: usize)
where Self: Sized { ... }
fn borrow_value<U, const BITS: u8>(tagged_ptr: &TaggedPointer<BITS>) -> &U
where Self: Borrow<U> + Sized { ... }
}