#![allow(dead_code, deprecated, unused_variables, unused_mut)] #![feature(once_cell_get_mut)] use std::cell::OnceCell; fn main() { let mut cell: OnceCell = OnceCell::new(); assert!(cell.get_mut_or_try_init(|| "not a number!".parse()).is_err()); assert!(cell.get().is_none()); let value = cell.get_mut_or_try_init(|| "1234".parse()); assert_eq!(value, Ok(& mut 1234)); let Ok(value) = value else { return; }; *value += 2; assert_eq!(cell.get(), Some(& 1236)) }