yosina 0.2.0

Japanese text transliteration library
Documentation
use crate::char::{Char, CharPool};
use crate::transliterator::{
    TransliterationError, Transliterator, TransliteratorFactory, TransliteratorFactoryError,
};
use crate::transliterators::SimpleTransliterator;
static RADICALS_MAPPINGS: phf::Map<&'static str, &'static str> = phf::phf_map! { "⺔" => "彑" , "⾙" => "貝" , "⽉" => "月" , "⺼" => "月" , "⽪" => "皮" , "⽵" => "竹" , "⽍" => "歹" , "⽊" => "木" , "⽥" => "田" , "⾚" => "赤" , "⾧" => "長" , "⿉" => "黍" , "⺯" => "糹" , "⻍" => "辶" , "⿑" => "齊" , "⿏" => "鼠" , "⽑" => "毛" , "⾢" => "邑" , "⼛" => "厶" , "⽦" => "疋" , "⽝" => "犬" , "⼻" => "彳" , "⼁" => "丨" , "⾎" => "血" , "⺗" => "㣺" , "⼑" => "刀" , "⽘" => "爻" , "⼢" => "夊" , "⾗" => "豕" , "⺀" => "冫" , "⺴" => "㓁" , "⻛" => "风" , "⼦" => "子" , "⻉" => "贝" , "⻟" => "飠" , "⻫" => "斉" , "⻮" => "齿" , "⻱" => "龜" , "⻂" => "衤" , "⽋" => "欠" , "⾱" => "韋" , "⾅" => "臼" , "⼗" => "十" , "⽌" => "止" , "⿕" => "龠" , "⻖" => "阝" , "⺨" => "犭" , "⾔" => "言" , "⾴" => "頁" , "⼬" => "屮" , "⾈" => "舟" , "⺄" => "乙" , "⼴" => "广" , "⼃" => "丿" , "⻀" => "艹" , "⼘" => "卜" , "⾲" => "韭" , "⻥" => "鱼" , "⺏" => "尣" , "⽾" => "耒" , "⾻" => "骨" , "⾜" => "足" , "⽅" => "方" , "⽽" => "而" , "⾘" => "豸" , "⾿" => "鬯" , "⼎" => "冫" , "⼞" => "囗" , "⿅" => "鹿" , "⺟" => "母" , "⻧" => "卤" , "⻳" => "龟" , "⻈" => "讠" , "⺺" => "肀" , "⽁" => "攴" , "⾕" => "谷" , "⾥" => "里" , "⿀" => "鬲" , "⻋" => "车" , "⽙" => "爿" , "⾺" => "馬" , "⼥" => "女" , "⺐" => "尢" , "⾽" => "髟" , "⺞" => "歺" , "⾣" => "酉" , "⾪" => "隶" , "⼯" => "工" , "⼔" => "匕" , "⽭" => "矛" , "⽰" => "示" , "⾑" => "襾" , "⽻" => "羽" , "⽤" => "用" , "⼂" => "丶" , "⼒" => "力" , "⽬" => "目" , "⾮" => "非" , "⽣" => "生" , "⼠" => "士" , "⾷" => "食" , "⺿" => "艹" , "⼵" => "廴" , "⾓" => "角" , "⽴" => "立" , "⼷" => "弋" , "⽹" => "网" , "⼶" => "廾" , "⻐" => "钅" , "⺫" => "罒" , "⼅" => "亅" , "⼮" => "巛" , "⽔" => "水" , "⾄" => "至" , "⾩" => "阜" , "⻁" => "虎" , "⼉" => "儿" , "⽐" => "比" , "⻢" => "马" , "⺖" => "忄" , "⼈" => "人" , "⾃" => "自" , "⻤" => "鬼" , "⽛" => "牙" , "⽖" => "爪" , "⻚" => "页" , "⻠" => "饣" , "⼓" => "勹" , "⽜" => "牛" , "⽇" => "日" , "⻦" => "鸟" , "⽿" => "耳" , "⼝" => "口" , "⾾" => "鬥" , "⾁" => "肉" , "⾼" => "高" , "⺦" => "丬" , "⾯" => "面" , "⽨" => "癶" , "⼆" => "二" , "⽕" => "火" , "⺽" => "臼" , "⺱" => "罓" , "⽒" => "氏" , "⻘" => "青" , "⺡" => "氵" , "⾦" => "金" , "⽯" => "石" , "⺬" => "示" , "⼿" => "手" , "⾭" => "靑" , "⼸" => "弓" , "⿄" => "鹵" , "⼫" => "尸" , "⽈" => "曰" , "⺹" => "耂" , "⾐" => "衣" , "⾝" => "身" , "⽟" => "玉" , "⺥" => "爫" , "⼱" => "巾" , "⺠" => "民" , "⻓" => "长" , "⾉" => "艮" , "⺝" => "月" , "⽓" => "气" , "⽡" => "瓦" , "⽼" => "老" , "⼚" => "厂" , "⾸" => "首" , "⾆" => "舌" , "⻪" => "黾" , "⾠" => "辰" , "⼙" => "卩" , "⿎" => "鼓" , "⺒" => "巳" , "⼼" => "心" , "⽶" => "米" , "⼪" => "尢" , "⽷" => "糸" , "⺳" => "㓁" , "⺎" => "兀" , "⻄" => "西" , "⿁" => "鬼" , "⼍" => "冖" , "⼤" => "大" , "⿆" => "麥" , "⾶" => "飛" , "⼀" => "一" , "⽢" => "甘" , "⾡" => "辵" , "⻒" => "镸" , "⽸" => "缶" , "⻑" => "長" , "⾍" => "虫" , "⽂" => "文" , "⽎" => "殳" , "⺘" => "扌" , "⽲" => "禾" , "⾟" => "辛" , "⺋" => "㔾" , "⺛" => "旡" , "⾬" => "雨" , "⺕" => "彐" , "⾫" => "隹" , "⻨" => "麦" , "⻰" => "龙" , "⻙" => "韦" , "⼰" => "己" , "⿌" => "黽" , "⽧" => "疒" , "⼡" => "夂" , "⿔" => "龜" , "⼟" => "土" , "⿍" => "鼎" , "⾇" => "舛" , "⾌" => "虍" , "⿐" => "鼻" , "⼧" => "宀" , "⻃" => "覀" , "⻭" => "歯" , "⼖" => "匸" , "⻩" => "黄" , "⾹" => "香" , "⺙" => "攵" , "⼐" => "凵" , "⽏" => "毋" , "⽳" => "穴" , "⿃" => "鳥" , "⽗" => "父" , "⼽" => "戈" , "⺃" => "乚" , "⽄" => "斤" , "⼺" => "彡" , "⻯" => "竜" , "⽺" => "羊" , "⾒" => "見" , "⿋" => "黹" , "⺓" => "幺" , "⽆" => "无" , "⼜" => "又" , "⼩" => "小" , "⼲" => "干" , "⽩" => "白" , "⾊" => "色" , "⼳" => "幺" , "⾳" => "音" , "⾋" => "艸" , "⿇" => "麻" , "⿈" => "黃" , "⿒" => "齒" , "⻜" => "飞" , "⼇" => "亠" , "⼏" => "几" , "⽃" => "斗" , "⺰" => "纟" , "⼨" => "寸" , "⾵" => "風" , "⺢" => "氺" , "⼌" => "冂" , "⼹" => "彐" , "⻝" => "食" , "⽮" => "矢" , "⼾" => "戶" , "⻬" => "齐" , "⽱" => "禸" , "⽀" => "支" , "⾤" => "釆" , "⾞" => "車" , "⿓" => "龍" , "⺅" => "亻" , "⻲" => "亀" , "⾖" => "豆" , "⺾" => "艹" , "⽠" => "瓜" , "⼭" => "山" , "⼄" => "乙" , "⺊" => "卜" , "⼋" => "八" , "⺆" => "冂" , "⺭" => "礻" , "⻏" => "阝" , "⽞" => "玄" , "⻅" => "见" , "⿂" => "魚" , "⽚" => "片" , "⽫" => "皿" , "⾂" => "臣" , "⼣" => "夕" , "⺉" => "刂" , "⾀" => "聿" , "⿊" => "黑" , "⺁" => "厂" , "⻣" => "骨" , "⺣" => "灬" , "⼊" => "入" , "⺂" => "乛" , "⼕" => "匚" , "⾏" => "行" , "⾰" => "革" , "⾛" => "走" , "⾨" => "門" };
pub struct RadicalsTransliterator {
    inner: SimpleTransliterator,
}
impl RadicalsTransliterator {
    #[allow(clippy::new_without_default)]
    pub fn new() -> Self {
        Self {
            inner: SimpleTransliterator::new(&RADICALS_MAPPINGS),
        }
    }
}
impl Transliterator for RadicalsTransliterator {
    fn transliterate<'a, 'b>(
        &self,
        pool: &mut CharPool<'a, 'b>,
        input: &[&'a Char<'a, 'b>],
    ) -> Result<Vec<&'a Char<'a, 'b>>, TransliterationError> {
        self.inner.transliterate(pool, input)
    }
}
pub struct RadicalsTransliteratorFactory;
impl RadicalsTransliteratorFactory {
    #[allow(clippy::new_without_default)]
    pub fn new() -> Self {
        Self
    }
}
impl TransliteratorFactory for RadicalsTransliteratorFactory {
    fn new_transliterator(&self) -> Result<Box<dyn Transliterator>, TransliteratorFactoryError> {
        Ok(Box::new(RadicalsTransliterator::new()))
    }
}