icu_normalizer/
harfbuzz.rs1use crate::properties::{
6 CanonicalCombiningClassMap, CanonicalCombiningClassMapBorrowed, CanonicalComposition,
7 CanonicalCompositionBorrowed, CanonicalDecomposition, CanonicalDecompositionBorrowed,
8 Decomposed,
9};
10use harfbuzz_traits::{CombiningClassFunc, ComposeFunc, DecomposeFunc};
11
12impl ComposeFunc for CanonicalCompositionBorrowed<'_> {
14 fn compose(&self, a: char, b: char) -> Option<char> {
15 CanonicalCompositionBorrowed::compose(*self, a, b)
16 }
17}
18
19impl ComposeFunc for CanonicalComposition {
21 fn compose(&self, a: char, b: char) -> Option<char> {
22 ComposeFunc::compose(&self.as_borrowed(), a, b)
23 }
24}
25
26impl ComposeFunc for &'_ CanonicalComposition {
28 fn compose(&self, a: char, b: char) -> Option<char> {
29 ComposeFunc::compose(&self.as_borrowed(), a, b)
30 }
31}
32
33impl DecomposeFunc for CanonicalDecompositionBorrowed<'_> {
35 fn decompose(&self, ab: char) -> Option<(char, char)> {
36 match CanonicalDecompositionBorrowed::decompose(self, ab) {
37 Decomposed::Default => None,
38 Decomposed::Expansion(first, second) => Some((first, second)),
39 Decomposed::Singleton(single) => Some((single, '\0')),
40 }
41 }
42}
43
44impl DecomposeFunc for CanonicalDecomposition {
46 fn decompose(&self, ab: char) -> Option<(char, char)> {
47 DecomposeFunc::decompose(&self.as_borrowed(), ab)
48 }
49}
50
51impl DecomposeFunc for &'_ CanonicalDecomposition {
53 fn decompose(&self, ab: char) -> Option<(char, char)> {
54 DecomposeFunc::decompose(&self.as_borrowed(), ab)
55 }
56}
57
58impl CombiningClassFunc for CanonicalCombiningClassMapBorrowed<'_> {
60 fn combining_class(&self, ch: char) -> u8 {
61 self.get_u8(ch)
62 }
63}
64
65impl CombiningClassFunc for CanonicalCombiningClassMap {
67 fn combining_class(&self, ch: char) -> u8 {
68 CombiningClassFunc::combining_class(&self.as_borrowed(), ch)
69 }
70}
71
72impl CombiningClassFunc for &'_ CanonicalCombiningClassMap {
74 fn combining_class(&self, ch: char) -> u8 {
75 CombiningClassFunc::combining_class(&self.as_borrowed(), ch)
76 }
77}