#![doc = include_str!("../README.md")]
pub mod char;
#[cfg(not(feature = "codegen"))]
pub mod recipes;
pub mod transliterator;
pub mod transliterators;
pub use char::*;
pub use transliterator::*;
#[cfg(not(feature = "codegen"))]
pub use recipes::TransliterationRecipe;
pub use transliterators::TransliteratorConfig;
#[cfg(not(feature = "codegen"))]
pub fn make_transliterator(
factory: &impl TransliteratorFactory,
) -> Result<impl Fn(&str) -> Result<String, TransliterationError>, TransliteratorFactoryError> {
let tl = factory.new_transliterator()?;
Ok(move |input: &str| -> Result<String, TransliterationError> {
let mut pool = CharPool::new();
let chars = pool.build_char_array(input);
let transliterated = tl.transliterate(&mut pool, &chars)?;
Ok(from_chars(transliterated.iter().cloned()))
})
}