zoi_core/frozen.rs
1use std::sync::{OnceLock, RwLock};
2
3fn frozen_mode_store() -> &'static RwLock<bool> {
4 static FROZEN_MODE: OnceLock<RwLock<bool>> = OnceLock::new();
5 FROZEN_MODE.get_or_init(|| RwLock::new(false))
6}
7
8/// Sets the global frozen mode.
9pub fn set_frozen(frozen: bool) {
10 if let Ok(mut guard) = frozen_mode_store().write() {
11 *guard = frozen;
12 }
13}
14
15/// Returns true if Zoi is in frozen mode.
16pub fn is_frozen() -> bool {
17 frozen_mode_store().read().map(|g| *g).unwrap_or(false)
18}