I'm trying to come up with a good pun how ownership and safety could have prevented this but..
use std::sync::OnceLock;
#[derive(Debug)] struct BrainCell { in_use: bool, }
static BRAIN_CELL: OnceLock = OnceLock::new();
fn get_brain_cell() -> &'static BrainCell { BRAIN_CELL.get_or_init(|| { println!("Allocating brain power... this might take a while."); BrainCell { in_use: true } }) }
I'm trying to come up with a good pun how ownership and safety could have prevented this but..
use std::sync::OnceLock;
#[derive(Debug)] struct BrainCell { in_use: bool, }
static BRAIN_CELL: OnceLock = OnceLock::new();
fn get_brain_cell() -> &'static BrainCell { BRAIN_CELL.get_or_init(|| { println!("Allocating brain power... this might take a while."); BrainCell { in_use: true } }) }