rust - 我可以制作 size_of::
问题描述
我有这种类型:
struct Foo(u32);
我使用 的方式Foo
,我知道u32
内部永远无法保存该值u32::max_value()
(但 的所有其他值u32
)。在我的应用程序中,我需要存储许多. 因此,如果只占用 32 位内存,而不是 64 位,那Option<Foo>
将非常有帮助。Option<Foo>
Option<u32>
我知道 Rust 会针对Option<&T>
它知道&T
永远不会有零值的类型执行这种优化。而且我还听说了一些不错的内存布局优化,它们在不久前被合并了。
我可以以某种方式告知编译器这种可能的内存布局优化吗?
如果这在我的确切情况下是不可能的,是否有可能,如果......
- ...永远不会
Foo
?(也许这是可能的,因为这更接近案例?)u32
0
Option<&T>
- ...只使用 31 位
Foo
?u32
(也许我们至少可以告诉 Rust 有一点是未使用的?)
解决方案
推荐阅读
- python - 根据第 2 列中存在的字符串更新第 1 列
- python - 汇总 Pandas 中特定列上具有相同值的行
- java - 尝试在 Postgresql 数据库中保存对象失败(无异常)
- c# - 如何从字节数组制作精灵?
- swift - 在 Swift 中关闭键盘时,UIToolbar 不再显示在视图中
- javascript - 反应,将数据从 json 添加到单个帖子组件
- windows - 詹金斯没有在 Windows 上运行 sh 命令
- spring - 如何创建两个正在验证方法参数的 Java Spring 服务 bean
- c# - ASP.net 核心命名空间不同步
- python - Python:将日期和时间放在 xls 列中