cloudiful-bevy-localization 0.1.2

Reusable Bevy localization runtime built around app-provided static registries.
Documentation
use crate::LocalizationDefinition;
use std::sync::RwLock;

static ACTIVE_DEFINITION: RwLock<Option<&'static LocalizationDefinition>> = RwLock::new(None);

pub fn register_definition(definition: &'static LocalizationDefinition) {
    *ACTIVE_DEFINITION
        .write()
        .expect("localization definition registry poisoned") = Some(definition);
}

pub(crate) fn active_definition() -> &'static LocalizationDefinition {
    ACTIVE_DEFINITION
        .read()
        .expect("localization definition registry poisoned")
        .as_ref()
        .copied()
        .expect("localization definition not registered")
}