1#![cfg_attr(not(feature = "std"), no_std)]
2#![cfg_attr(__unstable_doc, feature(doc_auto_cfg, doc_notable_trait))]
3
4extern crate alloc;
8
9pub use compact_str::CompactString as MiniStr;
10
11mod cldr_fallback;
12pub(crate) use cldr_fallback::cldr_fallback_mapping;
13
14pub mod error;
15pub use error::{GlossaError as Error, GlossaResult as Result};
16pub use lang_id::LangID;
19
20pub mod fallback;
22pub use fallback::{try_init_chain, try_init_chain_from_slice};
23
24#[cfg(feature = "std")]
25pub mod sys; pub mod traits;
28
29mod context;
30#[cfg(feature = "std")]
31pub use context::LocaleContext;
32
33pub mod misc {
34 use lang_id::LangID;
35
36 pub fn normalize_glossa_lang(language: Option<&str>) -> Option<LangID> {
38 language.and_then(|v| {
39 v.split(['.', '@', ':'])
40 .map(|x| x.trim_ascii())
41 .find(|x| !x.is_empty())
42 .and_then(|x| x.parse().ok())
43 })
44 }
45}