iuliia 0.1.0

Transliterate Cyrillic to Latin in every possible way
Documentation
// Auto-generated by iuliia-codegen — DO NOT EDIT MANUALLY
// Run `cargo run -p iuliia-codegen` to regenerate

pub mod ala_lc;
pub mod ala_lc_alt;
pub mod bgn_pcgn;
pub mod bgn_pcgn_alt;
pub mod bs_2979;
pub mod bs_2979_alt;
pub mod gost_16876;
pub mod gost_16876_alt;
pub mod gost_52290;
pub mod gost_52535;
pub mod gost_7034;
pub mod gost_779;
pub mod gost_779_alt;
pub mod icao_doc_9303;
pub mod iso_9_1954;
pub mod iso_9_1968;
pub mod iso_9_1968_alt;
pub mod mosmetro;
pub mod mvd_310;
pub mod mvd_310_fr;
pub mod mvd_782;
pub mod scientific;
pub mod telegram;
pub mod ungegn_1987;
pub mod wikipedia;
pub mod yandex_maps;
pub mod yandex_money;

use crate::Schema;
use crate::UnknownSchemaError;

/// Transliterate input text using a named schema.
///
/// # Errors
/// Returns `UnknownSchemaError` if the schema name is not recognized.
pub fn transliterate(input: &str, schema_name: &str) -> Result<String, UnknownSchemaError> {
    match schema_name {
        "ala_lc" => Ok(ala_lc::AlaLc::transliterate(input)),
        "ala_lc_alt" => Ok(ala_lc_alt::AlaLcAlt::transliterate(input)),
        "bgn_pcgn" => Ok(bgn_pcgn::BgnPcgn::transliterate(input)),
        "bgn_pcgn_alt" => Ok(bgn_pcgn_alt::BgnPcgnAlt::transliterate(input)),
        "bs_2979" => Ok(bs_2979::Bs2979::transliterate(input)),
        "bs_2979_alt" => Ok(bs_2979_alt::Bs2979Alt::transliterate(input)),
        "gost_16876" => Ok(gost_16876::Gost16876::transliterate(input)),
        "gost_16876_alt" => Ok(gost_16876_alt::Gost16876Alt::transliterate(input)),
        "gost_52290" => Ok(gost_52290::Gost52290::transliterate(input)),
        "gost_52535" => Ok(gost_52535::Gost52535::transliterate(input)),
        "gost_7034" => Ok(gost_7034::Gost7034::transliterate(input)),
        "gost_779" | "iso_9_1995" => Ok(gost_779::Gost779::transliterate(input)),
        "gost_779_alt" => Ok(gost_779_alt::Gost779Alt::transliterate(input)),
        "icao_doc_9303" => Ok(icao_doc_9303::IcaoDoc9303::transliterate(input)),
        "iso_9_1954" => Ok(iso_9_1954::Iso91954::transliterate(input)),
        "iso_9_1968" => Ok(iso_9_1968::Iso91968::transliterate(input)),
        "iso_9_1968_alt" => Ok(iso_9_1968_alt::Iso91968Alt::transliterate(input)),
        "mosmetro" => Ok(mosmetro::Mosmetro::transliterate(input)),
        "mvd_310" => Ok(mvd_310::Mvd310::transliterate(input)),
        "mvd_310_fr" => Ok(mvd_310_fr::Mvd310Fr::transliterate(input)),
        "mvd_782" => Ok(mvd_782::Mvd782::transliterate(input)),
        "scientific" => Ok(scientific::Scientific::transliterate(input)),
        "telegram" => Ok(telegram::Telegram::transliterate(input)),
        "ungegn_1987" => Ok(ungegn_1987::Ungegn1987::transliterate(input)),
        "wikipedia" => Ok(wikipedia::Wikipedia::transliterate(input)),
        "yandex_maps" => Ok(yandex_maps::YandexMaps::transliterate(input)),
        "yandex_money" => Ok(yandex_money::YandexMoney::transliterate(input)),
        _ => Err(UnknownSchemaError::new(schema_name)),
    }
}

/// Returns all available schema names (including aliases).
pub fn schema_names() -> &'static [&'static str] {
    &[
        "ala_lc",
        "ala_lc_alt",
        "bgn_pcgn",
        "bgn_pcgn_alt",
        "bs_2979",
        "bs_2979_alt",
        "gost_16876",
        "gost_16876_alt",
        "gost_52290",
        "gost_52535",
        "gost_7034",
        "gost_779",
        "gost_779_alt",
        "icao_doc_9303",
        "iso_9_1954",
        "iso_9_1968",
        "iso_9_1968_alt",
        "iso_9_1995",
        "mosmetro",
        "mvd_310",
        "mvd_310_fr",
        "mvd_782",
        "scientific",
        "telegram",
        "ungegn_1987",
        "wikipedia",
        "yandex_maps",
        "yandex_money",
    ]
}