Skip to content

Latest commit

 

History

History
29 lines (19 loc) · 749 Bytes

README.md

File metadata and controls

29 lines (19 loc) · 749 Bytes

OptionCell: OnceCell but derivable from Option

This library provides an equivalent of OnceCell, but it guarantees layout compatibility with Option<T>, providing additional transmute helpers.

Known use-cases

  • Implementing the unification algorithm without exposing the interior mutability to the user or unnecessarily cloning the value.

Usage

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();

Development

Check with MIRI:

cargo +nightly miri test