Struct icu::normalizer::properties::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>
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
.
sourcepub const fn new() -> CanonicalDecompositionBorrowed<'static>
pub const fn new() -> CanonicalDecompositionBorrowed<'static>
Construct from compiled data.
✨ Enabled with the compiled_data
Cargo feature.
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>
source§impl Default for CanonicalDecompositionBorrowed<'static>
impl Default for CanonicalDecompositionBorrowed<'static>
source§fn default() -> CanonicalDecompositionBorrowed<'static>
fn default() -> CanonicalDecompositionBorrowed<'static>
Returns the “default value” for a type. Read more
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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