1个不稳定版本
0.1.0 | 2023年9月10日 |
---|
#2449 in Rust模式
11KB
172 行
OptionCell: OnceCell但可从Option派生
此库提供了一个类似于OnceCell的等价物,但它保证与Option<T>
的布局兼容性,并提供额外的transmute辅助函数。
已知用例
- 在不暴露内部可变性给用户或无必要克隆值的情况下实现统一算法。
使用方法
cargo add option-cell
use option_cell::OptionCell;
let mut options = vec![None, None];
let cells = OptionCell::from_mut_slice(&mut options);
cells[0].set(1).unwrap();
开发
与MIRI检查
cargo +nightly miri test
lib.rs
:
OptionCell: OnceCell但可从Option派生
此库提供了一个类似于OnceCell的等价物,但它保证与Option<T>
的布局兼容性,并提供额外的transmute辅助函数。
已知用例
- 在不暴露内部可变性给用户或无必要克隆值的情况下实现统一算法。
使用方法
cargo add option-cell
use option_cell::OptionCell;
let mut options = vec![None, None];
let cells = OptionCell::from_mut_slice(&mut options);
cells[0].set(1).unwrap();