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(())
}