pub struct LocaleCanonicalizer { /* private fields */ }Expand description
Implements the algorithm defined in UTS #35: Annex C, LocaleId Canonicalization.
§Examples
use icu::locid::Locale;
use icu::locid_transform::{LocaleCanonicalizer, TransformResult};
let lc = LocaleCanonicalizer::new();
let mut locale: Locale = "ja-Latn-fonipa-hepburn-heploc".parse().unwrap();
assert_eq!(lc.canonicalize(&mut locale), TransformResult::Modified);
assert_eq!(locale, "ja-Latn-alalc97-fonipa".parse().unwrap());Implementations§
Source§impl LocaleCanonicalizer
impl LocaleCanonicalizer
Sourcepub const fn new() -> Self
pub const fn new() -> Self
A constructor which creates a LocaleCanonicalizer from compiled data.
✨ Enabled with the compiled_data Cargo feature.
Sourcepub fn try_new_with_any_provider(
provider: &(impl AnyProvider + ?Sized),
) -> Result<Self, LocaleTransformError>
pub fn try_new_with_any_provider( provider: &(impl AnyProvider + ?Sized), ) -> Result<Self, LocaleTransformError>
A version of Self::new that uses custom data provided by an AnyProvider.
Sourcepub fn try_new_unstable<P>(provider: &P) -> Result<Self, LocaleTransformError>
pub fn try_new_unstable<P>(provider: &P) -> Result<Self, LocaleTransformError>
A version of Self::new that uses custom data provided by a DataProvider.
Sourcepub const fn new_with_expander(expander: LocaleExpander) -> Self
pub const fn new_with_expander(expander: LocaleExpander) -> Self
Creates a LocaleCanonicalizer with a custom LocaleExpander and compiled data.
✨ Enabled with the compiled_data Cargo feature.
Sourcepub fn try_new_with_expander_unstable<P>(
provider: &P,
expander: LocaleExpander,
) -> Result<Self, LocaleTransformError>
pub fn try_new_with_expander_unstable<P>( provider: &P, expander: LocaleExpander, ) -> Result<Self, LocaleTransformError>
A version of Self::new_with_expander that uses custom data provided by a DataProvider.
Sourcepub fn try_new_with_expander_with_any_provider(
provider: &(impl AnyProvider + ?Sized),
options: LocaleExpander,
) -> Result<Self, LocaleTransformError>
pub fn try_new_with_expander_with_any_provider( provider: &(impl AnyProvider + ?Sized), options: LocaleExpander, ) -> Result<Self, LocaleTransformError>
A version of Self::new_with_expander that uses custom data provided by an AnyProvider.
Sourcepub fn canonicalize(&self, locale: &mut Locale) -> TransformResult
pub fn canonicalize(&self, locale: &mut Locale) -> TransformResult
The canonicalize method potentially updates a passed in locale in place depending up the results of running the canonicalization algorithm from http://unicode.org/reports/tr35/#LocaleId_Canonicalization.
Some BCP47 canonicalization data is not part of the CLDR json package. Because
of this, some canonicalizations are not performed, e.g. the canonicalization of
und-u-ca-islamicc to und-u-ca-islamic-civil. This will be fixed in a future
release once the missing data has been added to the CLDR json data. See:
https://github.com/unicode-org/icu4x/issues/746
§Examples
use icu::locid::Locale;
use icu::locid_transform::{LocaleCanonicalizer, TransformResult};
let lc = LocaleCanonicalizer::new();
let mut locale: Locale = "ja-Latn-fonipa-hepburn-heploc".parse().unwrap();
assert_eq!(lc.canonicalize(&mut locale), TransformResult::Modified);
assert_eq!(locale, "ja-Latn-alalc97-fonipa".parse().unwrap());Trait Implementations§
Source§impl Debug for LocaleCanonicalizer
impl Debug for LocaleCanonicalizer
Auto Trait Implementations§
impl Freeze for LocaleCanonicalizer
impl RefUnwindSafe for LocaleCanonicalizer
impl !Send for LocaleCanonicalizer
impl !Sync for LocaleCanonicalizer
impl Unpin for LocaleCanonicalizer
impl UnwindSafe for LocaleCanonicalizer
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
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeSendSync for T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 1112 bytes