shlesha 0.5.7

High-performance extensible transliteration library with hub-and-spoke architecture
Documentation
use shlesha::Shlesha;

fn main() {
    let shlesha = Shlesha::new();

    println!("๐Ÿ” Debugging Direct Mapping");
    println!("===========================");

    // Test exact matches from the generated mappings
    let test_cases = vec![
        ("namaste", "ISO words with exact matches"),
        ("ka", "Single consonant"),
        ("ga", "Another consonant"),
        ("dharma", "Word with 'dha'"),
        ("yoga", "Word with 'ya'"),
    ];

    for (input, desc) in test_cases {
        println!("\n๐Ÿงช Testing: {} ({})", input, desc);

        // Test ISO -> Devanagari direct mapping
        match shlesha.transliterate(input, "iso15919", "devanagari") {
            Ok(result) => println!("  โœ… iso15919 โ†’ devanagari: {} โ†’ {}", input, result),
            Err(e) => println!("  โŒ iso15919 โ†’ devanagari: {} โ†’ Error: {}", input, e),
        }

        // Test the reverse to see if it works
        if let Ok(deva_result) = shlesha.transliterate(input, "iso15919", "devanagari") {
            match shlesha.transliterate(&deva_result, "devanagari", "iso15919") {
                Ok(back_to_iso) => println!(
                    "  โœ… Round-trip: {} โ†’ {} โ†’ {}",
                    input, deva_result, back_to_iso
                ),
                Err(e) => println!("  โŒ Round-trip failed: {}", e),
            }
        }

        // Compare with hub-based conversion (IAST)
        match shlesha.transliterate(input, "iast", "devanagari") {
            Ok(hub_result) => println!("  ๐Ÿ“Š Hub-based (IAST): {} โ†’ {}", input, hub_result),
            Err(e) => println!("  โŒ Hub-based error: {}", e),
        }
    }

    println!("\n๐Ÿ’ก Analysis:");
    println!("- Direct mappings should handle exact sequences like 'ka', 'ga', 'dha'");
    println!("- Differences between direct and hub-based show pre-computation impact");
}