2 个版本
0.1.1 | 2021 年 6 月 8 日 |
---|---|
0.1.0 | 2021 年 6 月 8 日 |
#2832 in Rust 模式
6KB
65 行
safe_cell
这个包导出 SafeCell
类型,这是一个包装类型,它允许对任意内容进行安全的外部可变性。
用法与标准库中的 UnsafeCell
¹ 类型类似,但由于它专门针对可以静态证明没有发生不正确访问的情况,因此 SafeCell
可以在安全代码中完全使用。此外,实现很容易证明是完全可靠的,这使得 SafeCell
成为 UnsafeCell
在安全性关键代码中的绝佳替代品。
由于实现非常轻量,并且不使用任何额外的同步原语或动态借用跟踪,它具有可忽略的开销(因此它是一个真正的“零成本抽象”²)。
lib.rs
:
safe_cell
这个包导出 SafeCell
类型,这是一个包装类型,它允许对任意内容进行安全的外部可变性。
用法与标准库中的 UnsafeCell
¹ 类型类似,但由于它专门针对可以静态证明没有发生不正确访问的情况,因此 SafeCell
可以在安全代码中完全使用。此外,实现很容易证明是完全可靠的,这使得 SafeCell
成为 UnsafeCell
在安全性关键代码中的绝佳替代品。
由于实现非常轻量,并且不使用任何额外的同步原语或动态借用跟踪,它具有可忽略的开销(因此它是一个真正的“零成本抽象”²)。