use ra_ap_syntax::ast;
pub(crate) fn item_name(item: &ast::Item) -> Option<String> {
item_ident(item).map(|ident| format!("{ident}"))
}
fn item_ident(item: &ast::Item) -> Option<ast::Name> {
match item {
ast::Item::Const(i) => ast::HasName::name(i),
ast::Item::Enum(i) => ast::HasName::name(i),
ast::Item::Fn(i) => ast::HasName::name(i),
ast::Item::MacroRules(i) => ast::HasName::name(i),
ast::Item::MacroDef(i) => ast::HasName::name(i),
ast::Item::Module(i) => ast::HasName::name(i),
ast::Item::Static(i) => ast::HasName::name(i),
ast::Item::Struct(i) => ast::HasName::name(i),
ast::Item::Trait(i) => ast::HasName::name(i),
ast::Item::TypeAlias(i) => ast::HasName::name(i),
ast::Item::Union(i) => ast::HasName::name(i),
_ => None,
}
}