#![cfg(any(test, feature = "internal-test-api"))]
use crate::decompose::DecompForm;
pub fn raw_decomp_trie_value_canonical(ch: char) -> u32 {
crate::tables::raw_decomp_trie_value(ch, DecompForm::Canonical)
}
pub fn raw_decomp_trie_value_supp_canonical(cp: u32) -> u32 {
debug_assert!((0x10000..=0x10FFFF).contains(&cp));
unsafe { crate::tables::raw_decomp_trie_value_supplementary(cp, DecompForm::Canonical) }
}
pub fn needs_starter_shadow_bit(tv: u32) -> bool {
crate::tables::needs_starter_shadow(tv)
}
pub fn legacy_needs_starter_shadow(ch: char) -> bool {
crate::tables::lookup_ccc(ch) != 0
}
pub const CCC_QC_NFC_SHIFT: u32 = crate::tables::CCC_QC_NFC_SHIFT;
pub const CCC_QC_NFD_SHIFT: u32 = crate::tables::CCC_QC_NFD_SHIFT;
pub const CCC_QC_NFKC_SHIFT: u32 = crate::tables::CCC_QC_NFKC_SHIFT;
pub const CCC_QC_NFKD_SHIFT: u32 = crate::tables::CCC_QC_NFKD_SHIFT;
#[inline]
pub fn lookup_ccc_qc(c: char, qc_shift: u32) -> (u8, u8) {
crate::tables::lookup_ccc_qc(c, qc_shift)
}