#pointers #pair #integer #value #packed #object #store

指针-值对

将指针和一个小整数打包到一个指针大小的对象中

1 个不稳定版本

0.1.0 2022 年 3 月 18 日

#2238数据结构

MIT 许可证

10KB
184

Rust 的指针和值包装类型

此包提供了 PointerAndValue 类型,它是一个原始 *const T 指针的包装器,同时也将一个小整数值打包在对齐位中,并保证 mem::size_of::<PointerAndValue<T>>() == mem::size_of::<*const T>().

它受到了来自 LLVM 的 llvm::PointerIntPair 和 USD 的 TfPointerAndBits 的启发。

它还提供了 Cow,它类似于 std::borrow::Cow,但存储 &'a TBox<T>,并保证与 *const T 具有相同的大小。

待办事项和限制

  • 由于 mem::align_of 返回最小对齐为 1,因此目前无法与零大小类型的指针一起使用。
  • 支持动态大小类型

无运行时依赖