1 个不稳定版本
| 0.1.0 | 2021 年 10 月 5 日 |
|---|
#4 在 #type-erased
用于 inline_any
9KB
84 行
typeless
unsafe 在栈上进行类型擦除的 API
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
typeless = "0.1"
将类型为 T 的任何值 x 存储在 TypeErased 中将完全删除与其关联的所有类型数据。
限制
虽然这会删除所有类型数据,只留下纯字节,但编译器仍然需要两件事
-
大小:
TypeErased的大小不是基于其包含的数据,而是一个常量泛型参数C,实际上是它可以包含的类型的一个“最大大小”。 -
对齐:直到有方法可以通过常量参数定义对齐,
TypeErased的对齐为 8 字节,因此可以包含对齐为 8 或更小的任何东西
访问
由于没有类型数据,任何对内部数据的访问都是 unsafe(除了直接获取字节外)
TypeErased 不是一个 Send 或 Sync,因为它无法知道这是否安全
许可证
该项目根据您选择的以下任一项进行许可
进行。
除非您明确说明,否则根据 Apache-2.0 许可证定义的,您有意提交的任何贡献,都将根据上述许可进行双重许可,而无需任何额外的条款或条件。