pub struct AliasesV2<'data> {
pub language_variants: VarZeroVec<'data, LanguageStrStrPairVarULE>,
pub sgn_region: ZeroMap<'data, UnvalidatedTinyAsciiStr<3>, Language>,
pub language_len2: ZeroMap<'data, UnvalidatedTinyAsciiStr<2>, str>,
pub language_len3: ZeroMap<'data, UnvalidatedTinyAsciiStr<3>, str>,
pub language: VarZeroVec<'data, StrStrPairVarULE>,
pub script: ZeroMap<'data, UnvalidatedTinyAsciiStr<4>, Script>,
pub region_alpha: ZeroMap<'data, UnvalidatedTinyAsciiStr<2>, Region>,
pub region_num: ZeroMap<'data, UnvalidatedTinyAsciiStr<3>, Region>,
pub complex_region: ZeroMap<'data, UnvalidatedTinyAsciiStr<3>, ZeroSlice<Region>>,
pub variant: ZeroMap<'data, UnvalidatedTinyAsciiStr<8>, Variant>,
pub subdivision: ZeroMap<'data, UnvalidatedTinyAsciiStr<7>, TinyAsciiStr<7>>,
}
Expand description
This alias data is used for locale canonicalization.
Each field defines a
mapping from an old identifier to a new identifier, based upon the rules in
from http://unicode.org/reports/tr35/#LocaleId_Canonicalization. The data
is stored in sorted order, allowing for binary search to identify rules to
apply. It is broken down into smaller vectors based upon some characteristic
of the data, to help avoid unnecessary searches. For example, the sgn_region
field contains aliases for sign language and region, so that it is not
necessary to search the data unless the input is a sign language.
The algorithm in tr35 is not guaranteed to terminate on data other than what is currently in CLDR. For this reason, it is not a good idea to attempt to add or modify aliases for use in this structure.
Fields§
§language_variants: VarZeroVec<'data, LanguageStrStrPairVarULE>
[language, variant(-variant)*] -> [langid]
This is not a map as it’s searched linearly according to the canonicalization rules.
sgn_region: ZeroMap<'data, UnvalidatedTinyAsciiStr<3>, Language>
sgn-[region] -> [language]
language_len2: ZeroMap<'data, UnvalidatedTinyAsciiStr<2>, str>
[language{2}] -> [langid]
language_len3: ZeroMap<'data, UnvalidatedTinyAsciiStr<3>, str>
[language{3}] -> [langid]
language: VarZeroVec<'data, StrStrPairVarULE>
[langid] -> [langid]
This is not a map as it’s searched linearly according to the canonicalization rules.
script: ZeroMap<'data, UnvalidatedTinyAsciiStr<4>, Script>
[script] -> [script]
region_alpha: ZeroMap<'data, UnvalidatedTinyAsciiStr<2>, Region>
[region{2}] -> [region]
region_num: ZeroMap<'data, UnvalidatedTinyAsciiStr<3>, Region>
[region{3}] -> [region]
complex_region: ZeroMap<'data, UnvalidatedTinyAsciiStr<3>, ZeroSlice<Region>>
[region] -> [region]+
variant: ZeroMap<'data, UnvalidatedTinyAsciiStr<8>, Variant>
[variant] -> [variant]
subdivision: ZeroMap<'data, UnvalidatedTinyAsciiStr<7>, TinyAsciiStr<7>>
[value{7}] -> [value{7}]
Trait Implementations§
source§impl<'data> BakeSize for AliasesV2<'data>
impl<'data> BakeSize for AliasesV2<'data>
source§fn borrows_size(&self) -> usize
fn borrows_size(&self) -> usize
source§impl<'de, 'data> Deserialize<'de> for AliasesV2<'data>where
'de: 'data,
impl<'de, 'data> Deserialize<'de> for AliasesV2<'data>where
'de: 'data,
source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<AliasesV2<'data>, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<AliasesV2<'data>, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
source§impl<'data> Serialize for AliasesV2<'data>
impl<'data> Serialize for AliasesV2<'data>
source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
source§impl<'a> Yokeable<'a> for AliasesV2<'static>
impl<'a> Yokeable<'a> for AliasesV2<'static>
source§type Output = AliasesV2<'a>
type Output = AliasesV2<'a>
Self
with the 'static
replaced with 'a
, i.e. Self<'a>
impl<'data> StructuralPartialEq for AliasesV2<'data>
Auto Trait Implementations§
impl<'data> Freeze for AliasesV2<'data>
impl<'data> RefUnwindSafe for AliasesV2<'data>
impl<'data> Send for AliasesV2<'data>
impl<'data> Sync for AliasesV2<'data>
impl<'data> Unpin for AliasesV2<'data>
impl<'data> UnwindSafe for AliasesV2<'data>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more