2个不稳定版本
0.2.0 | 2023年3月6日 |
---|---|
0.1.0 | 2023年3月6日 |
#3 in #non-null
每月103次下载
在 7 个crate中使用(2个直接使用)
19KB
107 行
ConstPtr
Rust的std::ptr::NonNull
包装了一个*mut
指针。有时这会产生不期望的后果。ConstPtr
包装了NullPtr
,但去除了可变和未初始化的API。因此,它只能指向有效的对象(尽管当对象被销毁时,它可能成为悬挂指针)。这简化了对生命周期擦除引用的处理,因为一个&reference
隐式转换为*const pointer
并增加了一些安全网,因为不可能意外获得一个应该是const的变量的可变引用。
'nostd'兼容性
默认情况下启用'std'功能,这会引入对rust stdlib的依赖。当在'default'中禁用此功能时,ConstPtr
将成为no-std兼容。