use crate::schema::{Entry, Pronunciation};
pub fn write_pronunciation(
lines: &mut Vec<String>,
pronunciation: &Pronunciation,
_entry: &Entry, ) -> crate::Result<()> {
if let Some(ref kind) = pronunciation.kind {
let kind_str = kind.to_string();
let kind_display = kind_str
.chars()
.next()
.map(|c| c.to_uppercase().collect::<String>() + &kind_str[1..])
.unwrap_or_else(|| kind_str.to_string());
let pron_text = format!("*{}:* {}", kind_display, pronunciation.value);
lines.push(pron_text);
} else {
lines.push(pronunciation.value.to_string());
}
if !pronunciation.media.is_empty() {
let url_lines: Vec<String> = pronunciation
.media
.iter()
.map(|url| {
let desc = url.description.as_deref().unwrap_or("Audio");
format!("- [{}]({})", desc, url.src)
})
.collect();
lines.push(String::new()); lines.push(String::from("*Audio:*"));
lines.extend(url_lines);
lines.push(String::new()); }
Ok(())
}