Struct icu_normalizer::properties::CanonicalDecomposition
source · pub struct CanonicalDecomposition {
decompositions: DataPayload<CanonicalDecompositionDataV1Marker>,
tables: DataPayload<CanonicalDecompositionTablesV1Marker>,
non_recursive: DataPayload<NonRecursiveDecompositionSupplementV1Marker>,
}
Expand description
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.
Fields§
§decompositions: DataPayload<CanonicalDecompositionDataV1Marker>
§tables: DataPayload<CanonicalDecompositionTablesV1Marker>
§non_recursive: DataPayload<NonRecursiveDecompositionSupplementV1Marker>
Implementations§
source§impl CanonicalDecomposition
impl CanonicalDecomposition
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::CanonicalDecomposition::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
sourcefn decompose_non_hangul(&self, c: char) -> Decomposed
fn decompose_non_hangul(&self, c: char) -> Decomposed
Performs non-recursive canonical decomposition except Hangul syllables
are reported as Decomposed::Default
.
sourcepub const fn new() -> Self
pub const fn new() -> Self
Construct from compiled data.
✨ Enabled with the compiled_data
Cargo feature.
sourcepub fn try_new_with_any_provider(
provider: &(impl AnyProvider + ?Sized),
) -> Result<Self, NormalizerError>
pub fn try_new_with_any_provider( provider: &(impl AnyProvider + ?Sized), ) -> Result<Self, NormalizerError>
A version of Self::new
that uses custom data provided by an AnyProvider
.
sourcepub fn try_new_unstable<D>(provider: &D) -> Result<Self, NormalizerError>
pub fn try_new_unstable<D>(provider: &D) -> Result<Self, NormalizerError>
A version of Self::new
that uses custom data provided by a DataProvider
.
⚠️ The bounds on provider may change over time, including in SemVer minor releases.
Trait Implementations§
source§impl Debug for CanonicalDecomposition
impl Debug for CanonicalDecomposition
Auto Trait Implementations§
impl Freeze for CanonicalDecomposition
impl RefUnwindSafe for CanonicalDecomposition
impl !Send for CanonicalDecomposition
impl !Sync for CanonicalDecomposition
impl Unpin for CanonicalDecomposition
impl UnwindSafe for CanonicalDecomposition
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