pub(crate) enum Attr {
Kv(String, String),
Flag(String),
}
pub(crate) fn parse_attrs(s: &str) -> Vec<Attr> {
s.split(|c: char| c == ',' || c.is_whitespace())
.map(str::trim)
.filter(|t| !t.is_empty())
.map(|t| {
if let Some(eq) = t.find('=') {
Attr::Kv(t[..eq].trim().to_string(), t[eq + 1..].trim().to_string())
} else {
Attr::Flag(t.to_string())
}
})
.collect()
}