unic_ucd_normal/
composition.rs1use unic_char_property::tables::CharDataTable;
13
14pub mod data {
15 use crate::decomposition_type::long_names::*;
16 use crate::DecompositionType;
17 use unic_char_property::tables::CharDataTable;
18
19 pub const CANONICAL_COMPOSITION_MAPPING: CharDataTable<CharDataTable<char>> =
20 include!("../tables/canonical_composition_mapping.rsv");
21
22 pub const CANONICAL_DECOMPOSITION_MAPPING: CharDataTable<&[char]> =
23 include!("../tables/canonical_decomposition_mapping.rsv");
24
25 #[cfg_attr(rustfmt, rustfmt_skip)]
26 pub const COMPATIBILITY_DECOMPOSITION_MAPPING: CharDataTable<(DecompositionType, &[char])> =
27 include!("../tables/compatibility_decomposition_mapping.rsv");
28}
29
30pub fn canonical_composition(c: char) -> Option<CharDataTable<char>> {
32 data::CANONICAL_COMPOSITION_MAPPING.find(c)
33}
34
35pub fn canonical_decomposition(c: char) -> Option<&'static [char]> {
37 data::CANONICAL_DECOMPOSITION_MAPPING.find(c)
38}
39
40pub fn compatibility_decomposition(c: char) -> Option<&'static [char]> {
42 data::COMPATIBILITY_DECOMPOSITION_MAPPING
43 .find(c)
44 .map(|it| it.1)
45}