Skip to main content

cloudiful_bevy_localization/
definition_registry.rs

1use crate::LocalizationDefinition;
2use std::sync::RwLock;
3
4static ACTIVE_DEFINITION: RwLock<Option<&'static LocalizationDefinition>> = RwLock::new(None);
5
6pub fn register_definition(definition: &'static LocalizationDefinition) {
7    *ACTIVE_DEFINITION
8        .write()
9        .expect("localization definition registry poisoned") = Some(definition);
10}
11
12pub(crate) fn active_definition() -> &'static LocalizationDefinition {
13    ACTIVE_DEFINITION
14        .read()
15        .expect("localization definition registry poisoned")
16        .as_ref()
17        .copied()
18        .expect("localization definition not registered")
19}