pub mod ioprocessor;
pub mod lang;
use lang::Language;
pub trait Translator {
fn to_latin(&self, input: &String) -> String;
fn to_cyrillic(&self, input: &String) -> String;
}
pub fn new_translator(language: Language) -> Box<dyn Translator> {
match language {
Language::Belarusian => Box::new(lang::Belarusian {}),
Language::Bulgarian => Box::new(lang::Bulgarian {}),
Language::Russian => Box::new(lang::Russian {}),
Language::Serbian => Box::new(lang::Serbian {}),
Language::Ukrainian => Box::new(lang::Ukrainian {}),
Language::Nil => Box::new(lang::Nil {})
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_translator_new() {
let _ = new_translator(Language::Belarusian);
let _ = new_translator(Language::Bulgarian);
let _ = new_translator(Language::Russian);
let _ = new_translator(Language::Serbian);
let _ = new_translator(Language::Ukrainian);
let _ = new_translator(Language::Nil);
}
}