use crate::util::{is_cyrillic, is_katakana};
use crate::Script;
pub fn detect(s: &str) -> Script {
let has_latin = s.chars().any(|c| c.is_alphabetic() && c.is_ascii());
let has_cyrillic = s.chars().any(|c| c.is_alphabetic() && is_cyrillic(c));
let has_kana = s.chars().any(|c| c.is_alphabetic() && is_katakana(c));
if [has_latin, has_cyrillic, has_kana]
.iter()
.filter(|&&b| b)
.count()
> 1
{
Script::Mixed
} else if has_kana {
Script::Kana
} else if has_cyrillic {
Script::Cyrl
} else if has_latin {
Script::Latn
} else {
Script::Unknown
}
}