#[derive(PartialEq)]
pub(super) enum Direction {
Cjk,
LeftRight,
RightLeft,
LeftRightBottomTop,
BottomTopRightLeft,
TopBottom,
CheckNext,
}
pub(super) fn direction(c: char) -> Direction {
use unicode_script::tables::Script::*;
use Direction::*;
match unicode_script::tables::get_script(c) {
Unknown => LeftRight,
Ahom => LeftRight,
Anatolian_Hieroglyphs => LeftRight,
Arabic => RightLeft,
Armenian => LeftRight,
Avestan => RightLeft,
Balinese => LeftRight,
Bamum => LeftRight,
Bassa_Vah => LeftRight,
Batak => LeftRight,
Bengali => LeftRight,
Bopomofo => LeftRight,
Brahmi => LeftRight,
Braille => LeftRight,
Buginese => LeftRight,
Buhid => LeftRight,
Canadian_Aboriginal => LeftRight,
Carian => LeftRight,
Caucasian_Albanian => LeftRight,
Chakma => LeftRight,
Cham => LeftRight,
Cherokee => LeftRight,
Common => CheckNext,
Coptic => LeftRight,
Cuneiform => LeftRight,
Cypriot => RightLeft,
Cyrillic => LeftRight,
Deseret => LeftRight,
Devanagari => LeftRight,
Duployan => LeftRight,
Egyptian_Hieroglyphs => LeftRight,
Elbasan => LeftRight,
Ethiopic => LeftRight,
Georgian => LeftRight,
Glagolitic => LeftRight,
Gothic => LeftRight,
Grantha => LeftRight,
Greek => LeftRight,
Gujarati => LeftRight,
Gurmukhi => LeftRight,
Han => Cjk,
Hangul => Cjk,
Hanunoo => LeftRightBottomTop,
Hatran => RightLeft,
Hebrew => RightLeft,
Hiragana => Cjk,
Imperial_Aramaic => RightLeft,
Inherited => CheckNext,
Inscriptional_Pahlavi => RightLeft,
Inscriptional_Parthian => RightLeft,
Javanese => LeftRight,
Kaithi => LeftRight,
Kannada => LeftRight,
Katakana => Cjk,
Kayah_Li => LeftRight,
Kharoshthi => RightLeft,
Khmer => LeftRight,
Khojki => LeftRight,
Khudawadi => LeftRight,
Lao => LeftRight,
Latin => LeftRight,
Lepcha => LeftRight,
Limbu => LeftRight,
Linear_A => LeftRight,
Linear_B => LeftRight,
Lisu => LeftRight,
Lycian => LeftRight,
Lydian => RightLeft,
Mahajani => LeftRight,
Malayalam => LeftRight,
Mandaic => RightLeft,
Manichaean => RightLeft,
Meetei_Mayek => LeftRight,
Mende_Kikakui => RightLeft,
Meroitic_Cursive => RightLeft,
Meroitic_Hieroglyphs => RightLeft,
Miao => LeftRight,
Modi => LeftRight,
Mongolian => TopBottom,
Mro => LeftRight,
Multani => LeftRight,
Myanmar => LeftRight,
Nabataean => RightLeft,
New_Tai_Lue => LeftRight,
Nko => RightLeft,
Ogham => BottomTopRightLeft,
Ol_Chiki => LeftRight,
Old_Hungarian => RightLeft,
Old_Italic => RightLeft,
Old_North_Arabian => RightLeft,
Old_Permic => LeftRight,
Old_Persian => RightLeft,
Old_South_Arabian => RightLeft,
Old_Turkic => RightLeft,
Oriya => LeftRight,
Osmanya => LeftRight,
Pahawh_Hmong => LeftRight,
Palmyrene => RightLeft,
Pau_Cin_Hau => LeftRight,
Phags_Pa => TopBottom,
Phoenician => RightLeft,
Psalter_Pahlavi => RightLeft,
Rejang => LeftRight,
Runic => LeftRight,
Samaritan => RightLeft,
Saurashtra => LeftRight,
Sharada => LeftRight,
Shavian => LeftRight,
Siddham => LeftRight,
SignWriting => TopBottom,
Sinhala => LeftRight,
Sora_Sompeng => LeftRight,
Sundanese => LeftRight,
Syloti_Nagri => LeftRight,
Syriac => RightLeft,
Tagalog => LeftRight,
Tagbanwa => LeftRightBottomTop,
Tai_Le => LeftRight,
Tai_Tham => LeftRight,
Tai_Viet => LeftRight,
Takri => LeftRight,
Tamil => LeftRight,
Telugu => LeftRight,
Thaana => RightLeft,
Thai => LeftRight,
Tibetan => LeftRight,
Tifinagh => LeftRight,
Tirhuta => LeftRight,
Ugaritic => LeftRight,
Vai => LeftRight,
Warang_Citi => LeftRight,
Yi => LeftRight,
}
}