use std::ops::RangeInclusive;
use unicode_normalization::char::is_combining_mark;
pub const LATIN_COMBINING_ACCENTS: RangeInclusive<char> = '\u{300}'..='\u{36f}';
#[must_use]
pub fn is_slug_character(character: char) -> bool {
character.to_lowercase().eq([character])
&& (character.is_alphanumeric() || is_word_mark(character))
&& !LATIN_COMBINING_ACCENTS.contains(&character)
&& !sofie_core::misleads_display(character)
}
pub(crate) fn is_word_mark(character: char) -> bool {
is_combining_mark(character)
&& !matches!(
character,
'\u{488}'..='\u{489}'
| '\u{1abe}'
| '\u{20dd}'..='\u{20e0}'
| '\u{20e2}'..='\u{20e4}'
| '\u{a670}'..='\u{a672}'
)
}