yosina 2.0.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()))
    }
}