use crate::{is_project_mark, symbol_id_of, DSK_PROJECT_MARK, PUA_BASE};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum GlyphRole {
Alphabet,
Control,
ProjectMark,
Other,
}
pub fn glyph_role(codepoint: u32) -> GlyphRole {
if is_project_mark(codepoint) {
GlyphRole::ProjectMark
} else if symbol_id_of(codepoint).is_some() {
GlyphRole::Alphabet
} else if (0xE100..0xE110).contains(&codepoint) {
GlyphRole::Control
} else {
GlyphRole::Other
}
}
#[inline]
pub fn alphabet_codepoint(i: u8) -> u32 {
PUA_BASE + u32::from(i)
}
#[inline]
pub fn project_mark() -> u32 {
DSK_PROJECT_MARK
}