1 个不稳定版本
| 0.1.0 | 2022 年 3 月 18 日 |
|---|
#2238 在 数据结构
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 T 或 Box<T>,并保证与 *const T 具有相同的大小。
待办事项和限制
- 由于
mem::align_of返回最小对齐为 1,因此目前无法与零大小类型的指针一起使用。 - 支持动态大小类型