pub fn extract_docs(attrs: &[syn::Attribute]) -> Vec<String> {
attrs
.iter()
.filter_map(|attr| {
match &attr.meta {
syn::Meta::NameValue(nv) => {
if nv.path.is_ident("doc") {
match &nv.value {
syn::Expr::Lit(syn::ExprLit {
lit: syn::Lit::Str(doc),
..
}) => Some(doc.value()),
_ => None,
}
} else {
None
}
}
_ => None,
}
})
.collect()
}