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>
impl CanonicalDecompositionBorrowed<'static>
Sourcepub const fn static_to_owned(self) -> CanonicalDecomposition
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§impl CanonicalDecompositionBorrowed<'_>
impl CanonicalDecompositionBorrowed<'_>
Sourcepub fn decompose(&self, c: char) -> Decomposed
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>
impl<'a> Debug for CanonicalDecompositionBorrowed<'a>
Auto Trait Implementations§
impl<'a> Freeze for CanonicalDecompositionBorrowed<'a>
impl<'a> RefUnwindSafe for CanonicalDecompositionBorrowed<'a>
impl<'a> Send for CanonicalDecompositionBorrowed<'a>
impl<'a> Sync for CanonicalDecompositionBorrowed<'a>
impl<'a> Unpin for CanonicalDecompositionBorrowed<'a>
impl<'a> UnwindSafe for CanonicalDecompositionBorrowed<'a>
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,
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