use brlapi::Connection;
fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("Testing complete liblouis integration");
println!("====================================");
let connection = Connection::open()?;
println!("[SUCCESS] BrlAPI connection established");
let display = connection.display_info()?;
println!("[SUCCESS] Display info: {} ({}x{} cells)", display.driver_name(), display.width(), display.height());
let user_table = connection.user_contraction_table()?;
println!("[SUCCESS] User contraction table: {}", user_table);
let translator = liblouis::Translator::new();
match translator.translate_string(&user_table, "Hello world") {
Ok(contracted) => {
println!("[SUCCESS] liblouis translation: 'Hello world' -> '{}'", contracted);
}
Err(e) => {
println!("[WARNING] liblouis translation failed: {} (table may not be installed)", e);
}
}
println!("[SUCCESS] liblouis version: {}", liblouis::Translator::version());
println!("\n[INFO] Testing locale resolution:");
let test_locales = ["en_US", "en_GB", "fr_FR", "unknown"];
for locale in &test_locales {
match liblouis::TableResolver::resolve_locale(locale) {
Ok(table) => println!(" {} -> {}", locale, table),
Err(e) => println!(" {} failed: {}", locale, e),
}
}
println!("\n[COMPLETED] Integration test completed successfully!");
Ok(())
}