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 ARCHAICHIRAKATAS_MAPPINGS: phf::Map<&'static str, &'static str> = phf::phf_map! { "𛂜" => "の" , "𛄕" => "ゑ" , "𛀳" => "け" , "𛀯" => "く" , "𛁧" => "ち" , "𛂈" => "に" , "𛃊" => "み" , "𛄙" => "を" , "𛀐" => "え" , "𛂆" => "な" , "𛁁" => "さ" , "𛁵" => "て" , "𛀅" => "あ" , "𛃍" => "み" , "𛁆" => "し" , "𛂁" => "な" , "𛂑" => "ぬ" , "𛃕" => "め" , "𛄛" => "を" , "𛀄" => "あ" , "𛀾" => "さ" , "𛀎" => "う" , "𛁤" => "ち" , "𛀈" => "い" , "𛂀" => "な" , "𛂲" => "ふ" , "𛀃" => "あ" , "𛀩" => "き" , "𛁟" => "た" , "𛀙" => "か" , "𛁞" => "た" , "𛂿" => "ほ" , "𛃂" => "ま" , "𛃝" => "や" , "𛃪" => "よ" , "𛄁" => "れ" , "𛀏" => "え" , "𛄀" => "れ" , "𛂍" => "に" , "𛃈" => "ま" , "𛃷" => "り" , "𛄞" => "ん" , "𛀪" => "き" , "𛂎" => "に" , "𛁼" => "と" , "𛂚" => "の" , "𛃧" => "よ" , "𛂵" => "へ" , "𛀚" => "か" , "𛁊" => "す" , "𛂡" => "は" , "𛄐" => "ゐ" , "𛄄" => "ろ" , "𛃃" => "ま" , "𛂓" => "ね" , "𛂤" => "は" , "𛂅" => "な" , "𛁮" => "て" , "𛀥" => "き" , "𛁝" => "そ" , "𛀺" => "こ" , "𛁨" => "ち" , "𛃅" => "ま" , "𛃼" => "る" , "𛄇" => "ろ" , "𛂻" => "ほ" , "𛄔" => "ゑ" , "𛄝" => "ん" , "𛀫" => "く" , "𛃲" => "り" , "𛁉" => "し" , "𛁐" => "す" , "𛃆" => "ま" , "𛃏" => "み" , "𛀵" => "け" , "𛃱" => "り" , "𛁦" => "ち" , "𛃠" => "や" , "𛃙" => "も" , "𛄘" => "を" , "𛃭" => "ら" , "𛀘" => "か" , "𛂋" => "に" , "𛂽" => "ほ" , "𛁾" => "な" , "𛄜" => "を" , "𛂠" => "は" , "𛂔" => "ね" , "𛀁" => "え" , "𛃌" => "み" , "𛂢" => "は" , "𛀷" => "け" , "𛁖" => "せ" , "𛃵" => "り" , "𛃸" => "る" , "𛁋" => "す" , "𛃢" => "や" , "𛄒" => "ゑ" , "𛄚" => "を" , "𛁱" => "て" , "𛁓" => "せ" , "𛁷" => "と" , "𛁹" => "と" , "𛂹" => "へ" , "𛃣" => "ゆ" , "𛀋" => "う" , "𛃞" => "や" , "𛂒" => "ね" , "𛀆" => "い" , "𛁘" => "そ" , "𛄗" => "を" , "𛀗" => "か" , "𛁴" => "て" , "𛀣" => "き" , "𛀻" => "こ" , "𛁛" => "そ" , "𛂥" => "は" , "𛂺" => "ほ" , "𛁏" => "す" , "𛃖" => "め" , "𛀼" => "さ" , "𛁽" => "と" , "𛃚" => "も" , "𛁥" => "ち" , "𛀀" => "エ" , "𛁬" => "つ" , "𛃎" => "み" , "𛃓" => "む" , "𛀴" => "け" , "𛁀" => "さ" , "𛁺" => "と" , "𛀂" => "あ" , "𛀔" => "お" , "𛁌" => "す" , "𛁢" => "ち" , "𛀓" => "え" , "𛁻" => "と" , "𛄎" => "ゐ" , "𛀨" => "き" , "𛂘" => "ね" , "𛂦" => "は" , "𛃬" => "よ" , "𛁔" => "せ" , "𛁍" => "す" , "𛄅" => "ろ" , "𛂃" => "な" , "𛄠" => "イ" , "𛃽" => "る" , "𛃟" => "や" , "𛁲" => "て" , "𛃥" => "ゆ" , "𛂨" => "は" , "𛀶" => "け" , "𛄑" => "ゐ" , "𛁠" => "た" , "𛂊" => "に" , "𛃜" => "も" , "𛄡" => "エ" , "𛁿" => "な" , "𛁪" => "つ" , "𛀝" => "か" , "𛁇" => "し" , "𛁣" => "ち" , "𛃗" => "も" , "𛂣" => "は" , "𛀲" => "け" , "𛀭" => "く" , "𛀢" => "か" , "𛂧" => "は" , "𛃾" => "れ" , "𛀜" => "か" , "𛂙" => "の" , "𛂳" => "へ" , "𛀒" => "え" , "𛂪" => "ひ" , "𛃋" => "み" , "𛃒" => "む" , "𛃯" => "ら" , "𛃰" => "ら" , "𛃿" => "れ" , "𛃹" => "る" , "𛄆" => "ろ" , "𛁶" => "て" , "𛄃" => "ろ" , "𛀱" => "く" , "𛃑" => "む" , "𛁯" => "て" , "𛂛" => "の" , "𛂄" => "な" , "𛃘" => "も" , "𛃉" => "み" , "𛀞" => "か" , "𛂩" => "ひ" , "𛁳" => "て" , "𛃺" => "る" , "𛄌" => "わ" , "𛄖" => "を" , "𛂫" => "ひ" , "𛀡" => "か" , "𛂾" => "ほ" , "𛄈" => "わ" , "𛁃" => "さ" , "𛄟" => "う" , "𛂕" => "ね" , "𛀟" => "か" , "𛀰" => "く" , "𛁡" => "た" , "𛂞" => "は" , "𛂯" => "ひ" , "𛄏" => "ゐ" , "𛁭" => "つ" , "𛃐" => "む" , "𛄋" => "わ" , "𛃻" => "る" , "𛃛" => "も" , "𛀧" => "き" , "𛂷" => "へ" , "𛄓" => "ゑ" , "𛀽" => "さ" , "𛀮" => "く" , "𛁎" => "す" , "𛀍" => "う" , "𛂰" => "ふ" , "𛀬" => "く" , "𛀤" => "き" , "𛂇" => "に" , "𛁒" => "せ" , "𛀹" => "こ" , "𛂂" => "な" , "𛀊" => "う" , "𛂮" => "ひ" , "𛃄" => "ま" , "𛃴" => "り" , "𛁑" => "す" , "𛁜" => "そ" , "𛂭" => "ひ" , "𛀖" => "お" , "𛂟" => "は" , "𛁂" => "さ" , "𛀸" => "こ" , "𛂏" => "ぬ" , "𛀇" => "い" , "𛂶" => "へ" , "𛁰" => "て" , "𛄊" => "わ" , "𛂌" => "に" , "𛁅" => "し" , "𛃡" => "や" , "𛃤" => "ゆ" , "𛃮" => "ら" , "𛃶" => "り" , "𛂗" => "ね" , "𛃔" => "め" , "𛁈" => "し" , "𛂐" => "ぬ" , "𛂉" => "に" , "𛃩" => "よ" , "𛄍" => "ゐ" , "𛃇" => "ま" , "𛁗" => "そ" , "𛂴" => "へ" , "𛃀" => "ほ" , "𛄉" => "わ" , "𛁩" => "つ" , "𛂖" => "ね" , "𛂼" => "ほ" , "𛀛" => "か" , "𛃁" => "ほ" , "𛃦" => "ゆ" , "𛀠" => "か" , "𛁕" => "せ" , "𛁄" => "し" , "𛂝" => "の" , "𛁙" => "そ" , "𛂬" => "ひ" , "𛁫" => "つ" , "𛄂" => "ろ" , "𛃨" => "よ" , "𛀑" => "え" , "𛀉" => "い" , "𛀌" => "う" , "𛂸" => "へ" , "𛃫" => "よ" , "𛀕" => "お" , "𛁸" => "と" , "𛄢" => "ウ" , "𛃳" => "り" , "𛁚" => "そ" , "𛀦" => "き" , "𛀿" => "さ" , "𛂱" => "ふ" };
pub struct ArchaicHirakatasTransliterator {
    inner: SimpleTransliterator,
}
impl ArchaicHirakatasTransliterator {
    #[allow(clippy::new_without_default)]
    pub fn new() -> Self {
        Self {
            inner: SimpleTransliterator::new(&ARCHAICHIRAKATAS_MAPPINGS),
        }
    }
}
impl Transliterator for ArchaicHirakatasTransliterator {
    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 ArchaicHirakatasTransliteratorFactory;
impl ArchaicHirakatasTransliteratorFactory {
    #[allow(clippy::new_without_default)]
    pub fn new() -> Self {
        Self
    }
}
impl TransliteratorFactory for ArchaicHirakatasTransliteratorFactory {
    fn new_transliterator(&self) -> Result<Box<dyn Transliterator>, TransliteratorFactoryError> {
        Ok(Box::new(ArchaicHirakatasTransliterator::new()))
    }
}