1#[derive(Debug, PartialEq)]
3pub enum Script {
4 Kana,
6 Latn,
8 Cyrl,
10 Mixed,
14 Unknown,
16}
17
18mod util;
19
20mod conversion {
21 pub mod cyrillic;
22 pub mod katakana;
24 pub mod latin;
25}
26
27mod syllable;
28pub use syllable::separate;
29
30mod detection;
31pub use detection::detect;
32
33pub use conversion::cyrillic::{convert_cyrl_to_latn, convert_latn_to_cyrl};
34pub use conversion::katakana::{convert_kana_to_latn, convert_latn_to_kana};
35
36pub fn convert_cyrl_to_kana(cyrl: &str) -> String {
37 convert_latn_to_kana(&convert_cyrl_to_latn(cyrl))
38}
39
40pub fn convert_kana_to_cyrl(kana: &str) -> String {
41 convert_latn_to_cyrl(&convert_kana_to_latn(kana))
42}
43
44#[cfg(test)]
45mod tests {
46 use super::*;
47
48 #[test]
49 fn test_detect() {
50 assert_eq!(detect("aynu"), Script::Latn);
51 assert_eq!(detect("アイヌ"), Script::Kana);
52 assert_eq!(detect("айну"), Script::Cyrl);
53 assert_eq!(detect("Aynuイタㇰ"), Script::Mixed);
54 assert_eq!(detect("愛努"), Script::Unknown);
55 }
56}