use anyhow::{Result, bail};
pub fn sanitize_name(name: &str) -> Result<String> {
let sanitized = name
.chars()
.map(|ch| {
if ch.is_ascii_alphanumeric() || ch == '-' || ch == '_' {
ch
} else {
'_'
}
})
.collect::<String>();
if sanitized.is_empty() {
bail!("name is empty");
}
Ok(sanitized)
}