Crate viaptr

Source
Expand description

§viaptr

An experimental library for packing complex types into pointer-sized fields.

§Examples

Compact<Result<Box<A>, Box<B>>> // A pointer to A or B, taking up only one machine word
Compact<(Box<A>, Bits<2>)> // A tagged pointer with two additional bits of information

§TODO

  • document safety constraints on unsafe traits and functions
  • general documentation

§License

Mozilla Public License 2.0

Modules§

compact
shy_atomic

Structs§

Bits
Unsigned integers at most N bits long.
FitsInUsize
A predicate checking if usize has at least N bits.
FreeBits
A predicate checking if P is aligned enough to fit N bits.
MaybeOwned
A wrapper type to construct values which might not own their contents.
NestOption
Like Option, but preserves Pointer implementation when nested.
Null
A value always encoded as a null pointer.

Traits§

AlignedTo
Require minimum Pointer alignment.
CloneInPlace
A trait for types which can be cloned in place.
Eval
Predicate evaluation trait.
NonNull
Require non-null pointers from Pointer::into_ptr.
Pointer
Conversion to and from *const ().
VerifyAlignment
Verify Pointer alignment validity and magnitude.