Struct icu::normalizer::properties::CanonicalDecomposition
source · [−]pub struct CanonicalDecomposition { /* private fields */ }
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.
Implementations
sourceimpl 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::try_new_unstable(&icu_testdata::unstable()).unwrap();
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
sourcepub fn try_new_unstable<D>(
data_provider: &D
) -> Result<CanonicalDecomposition, NormalizerError> where
D: DataProvider<CanonicalDecompositionDataV1Marker> + DataProvider<CanonicalDecompositionTablesV1Marker> + DataProvider<NonRecursiveDecompositionSupplementV1Marker> + ?Sized,
pub fn try_new_unstable<D>(
data_provider: &D
) -> Result<CanonicalDecomposition, NormalizerError> where
D: DataProvider<CanonicalDecompositionDataV1Marker> + DataProvider<CanonicalDecompositionTablesV1Marker> + DataProvider<NonRecursiveDecompositionSupplementV1Marker> + ?Sized,
Construct from data provider.
⚠️ The bounds on this function may change over time, including in SemVer minor releases.
sourcepub fn try_new_with_any_provider(
provider: &impl AnyProvider
) -> Result<CanonicalDecomposition, NormalizerError>
pub fn try_new_with_any_provider(
provider: &impl AnyProvider
) -> Result<CanonicalDecomposition, NormalizerError>
Creates a new instance using an AnyProvider
.
For details on the behavior of this function, see: Self::try_new_unstable
sourcepub fn try_new_with_buffer_provider(
provider: &impl BufferProvider
) -> Result<CanonicalDecomposition, NormalizerError>
pub fn try_new_with_buffer_provider(
provider: &impl BufferProvider
) -> Result<CanonicalDecomposition, NormalizerError>
✨ Enabled with the "serde"
feature.
Creates a new instance using a BufferProvider
.
For details on the behavior of this function, see: Self::try_new_unstable
Auto Trait Implementations
impl RefUnwindSafe for CanonicalDecomposition
impl Send for CanonicalDecomposition
impl Sync for CanonicalDecomposition
impl Unpin for CanonicalDecomposition
impl UnwindSafe for CanonicalDecomposition
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more