readsight 1.0.1

Multilingual readability library — 86 languages, 17 formulas, TeX-based syllable counting via the Frank M. Liang algorithm.
Documentation
//! Demo mirroring the PHP `examples/demo.php`.

use readsight::ReadSight;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let text = "The quick brown fox jumps over the lazy dog. \
                This sentence provides a simple readability sample for testing purposes.";

    let rs = ReadSight::new("en-us")?;

    println!("== ReadSight (Rust) demo ==");
    println!("Language: {} ({})", rs.language().name, rs.language().code);
    println!();

    println!("Syllables:");
    for word in ["hyphenation", "banana", "beautiful", "communication"] {
        println!(
            "  {:<16} count={} split_word={:?}",
            word,
            rs.syllable_count(word),
            rs.split_word(word)
        );
    }
    println!();

    let stats = rs.analyze(text)?;
    println!("Statistics for sample text:");
    println!("  words={}", stats.word_count);
    println!("  sentences={}", stats.sentence_count);
    println!("  letters={}", stats.letter_count);
    println!("  syllables={}", stats.syllable_count);
    println!("  polysyllables={}", stats.polysyllable_count);
    println!();

    println!("Formulas:");
    for name in rs.supported_formulas() {
        let r = rs.score(&name, text)?;
        let grade = r
            .grade_level
            .map(|g| format!(" grade={g}"))
            .unwrap_or_default();
        println!(
            "  {:<28} score={}{} ({})",
            r.formula_name, r.score, grade, r.interpretation
        );
    }

    Ok(())
}