CanonicalDecompositionBorrowed

Struct CanonicalDecompositionBorrowed 

Source
pub struct CanonicalDecompositionBorrowed<'a> { /* private fields */ }
Expand description

Borrowed version of the raw (non-recursive) canonical decomposition operation.

Callers should generally use DecomposingNormalizer instead of this API. However, this API is provided for callers such as HarfBuzz that specifically want access to non-recursive canonical decomposition e.g. for use in a glyph-availability-guided custom normalizer.

Implementations§

Source§

impl CanonicalDecompositionBorrowed<'static>

Source

pub const fn static_to_owned(self) -> CanonicalDecomposition

Cheaply converts a CanonicalDecompositionBorrowed<'static> into a CanonicalDecomposition.

Note: Due to branching and indirection, using CanonicalDecomposition might inhibit some compile-time optimizations that are possible with CanonicalDecompositionBorrowed.

Source

pub const fn new() -> Self

Construct from compiled data.

Enabled with the compiled_data Cargo feature.

📚 Help choosing a constructor

Source§

impl CanonicalDecompositionBorrowed<'_>

Source

pub fn decompose(&self, c: char) -> Decomposed

Performs non-recursive canonical decomposition (including for Hangul).

    use icu::normalizer::properties::Decomposed;
    let decomp = icu::normalizer::properties::CanonicalDecompositionBorrowed::new();

    assert_eq!(decomp.decompose('e'), Decomposed::Default);
    assert_eq!(
        decomp.decompose('ệ'),
        Decomposed::Expansion('ẹ', '\u{0302}')
    );
    assert_eq!(decomp.decompose('각'), Decomposed::Expansion('가', 'ᆨ'));
    assert_eq!(decomp.decompose('\u{212B}'), Decomposed::Singleton('Å')); // ANGSTROM SIGN
    assert_eq!(decomp.decompose('\u{2126}'), Decomposed::Singleton('Ω')); // OHM SIGN
    assert_eq!(decomp.decompose('\u{1F71}'), Decomposed::Singleton('ά')); // oxia

Trait Implementations§

Source§

impl<'a> Debug for CanonicalDecompositionBorrowed<'a>

Source§

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

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

impl Default for CanonicalDecompositionBorrowed<'static>

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,

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: 24 bytes