LocaleCanonicalizer

Struct LocaleCanonicalizer 

Source
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

Source

pub const fn new() -> Self

A constructor which creates a LocaleCanonicalizer from compiled data.

Enabled with the compiled_data Cargo feature.

📚 Help choosing a constructor

Source

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.

📚 Help choosing a constructor

Source

pub fn try_new_unstable<P>(provider: &P) -> Result<Self, LocaleTransformError>

A version of Self::new that uses custom data provided by a DataProvider.

📚 Help choosing a constructor

⚠️ The bounds on provider may change over time, including in SemVer minor releases.
Source

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.

📚 Help choosing a constructor

Source

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.

📚 Help choosing a constructor

⚠️ The bounds on provider may change over time, including in SemVer minor releases.
Source

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.

📚 Help choosing a constructor

Source

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

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for LocaleCanonicalizer

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

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