use icu_locid::extensions::unicode::Key;
#[derive(Debug, PartialEq, Eq, Copy, Clone, PartialOrd, Ord)]
#[non_exhaustive]
pub enum LocaleFallbackPriority {
Language,
Region,
Collation,
}
impl LocaleFallbackPriority {
pub const fn const_default() -> Self {
Self::Language
}
}
impl Default for LocaleFallbackPriority {
fn default() -> Self {
Self::const_default()
}
}
#[derive(Debug, PartialEq, Eq, Copy, Clone, PartialOrd, Ord)]
#[non_exhaustive]
pub enum LocaleFallbackSupplement {
Collation,
}
#[derive(Debug, Clone, PartialEq, Eq, Copy)]
#[non_exhaustive]
pub struct LocaleFallbackConfig {
pub priority: LocaleFallbackPriority,
pub extension_key: Option<Key>,
pub fallback_supplement: Option<LocaleFallbackSupplement>,
}
impl LocaleFallbackConfig {
pub const fn const_default() -> Self {
Self {
priority: LocaleFallbackPriority::const_default(),
extension_key: None,
fallback_supplement: None,
}
}
}
impl Default for LocaleFallbackConfig {
fn default() -> Self {
Self::const_default()
}
}