Struct icu::normalizer::properties::CanonicalComposition
source · [−]pub struct CanonicalComposition { /* private fields */ }
Expand description
The raw canonical composition operation.
Callers should generally use ComposingNormalizer
instead of this API.
However, this API is provided for callers such as HarfBuzz that specifically
want access to the raw canonical composition operation e.g. for use in a
glyph-availability-guided custom normalizer.
Implementations
sourceimpl CanonicalComposition
impl CanonicalComposition
sourcepub fn compose(&self, starter: char, second: char) -> Option<char>
pub fn compose(&self, starter: char, second: char) -> Option<char>
Performs canonical composition (including Hangul) on a pair of
characters or returns None
if these characters don’t compose.
Composition exclusions are taken into account.
Examples
let comp =
icu_normalizer::properties::CanonicalComposition::try_new_unstable(
&icu_testdata::unstable(),
)
.unwrap();
assert_eq!(comp.compose('a', 'b'), None); // Just two non-composing starters
assert_eq!(comp.compose('a', '\u{0308}'), Some('ä'));
assert_eq!(comp.compose('ẹ', '\u{0302}'), Some('ệ'));
assert_eq!(comp.compose('𝅗', '𝅥'), None); // Composition exclusion
assert_eq!(comp.compose('ে', 'া'), Some('ো')); // Second is starter
assert_eq!(comp.compose('ᄀ', 'ᅡ'), Some('가')); // Hangul LV
assert_eq!(comp.compose('가', 'ᆨ'), Some('각')); // Hangul LVT
sourcepub fn try_new_unstable<D>(
data_provider: &D
) -> Result<CanonicalComposition, NormalizerError> where
D: DataProvider<CanonicalCompositionsV1Marker> + ?Sized,
pub fn try_new_unstable<D>(
data_provider: &D
) -> Result<CanonicalComposition, NormalizerError> where
D: DataProvider<CanonicalCompositionsV1Marker> + ?Sized,
Construct from data provider.
sourcepub fn try_new_with_any_provider(
provider: &impl AnyProvider
) -> Result<CanonicalComposition, NormalizerError>
pub fn try_new_with_any_provider(
provider: &impl AnyProvider
) -> Result<CanonicalComposition, 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<CanonicalComposition, NormalizerError>
pub fn try_new_with_buffer_provider(
provider: &impl BufferProvider
) -> Result<CanonicalComposition, 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 CanonicalComposition
impl Send for CanonicalComposition
impl Sync for CanonicalComposition
impl Unpin for CanonicalComposition
impl UnwindSafe for CanonicalComposition
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