@@ -681,6 +681,39 @@ pub enum ItemEnum {
681681 } ,
682682}
683683
684+ impl ItemEnum {
685+ /// Returns the [`ItemKind`] of this item.
686+ pub fn item_kind ( & self ) -> ItemKind {
687+ match self {
688+ ItemEnum :: Module ( _) => ItemKind :: Module ,
689+ ItemEnum :: ExternCrate { .. } => ItemKind :: ExternCrate ,
690+ ItemEnum :: Use ( _) => ItemKind :: Use ,
691+ ItemEnum :: Union ( _) => ItemKind :: Union ,
692+ ItemEnum :: Struct ( _) => ItemKind :: Struct ,
693+ ItemEnum :: StructField ( _) => ItemKind :: StructField ,
694+ ItemEnum :: Enum ( _) => ItemKind :: Enum ,
695+ ItemEnum :: Variant ( _) => ItemKind :: Variant ,
696+ ItemEnum :: Function ( _) => ItemKind :: Function ,
697+ ItemEnum :: Trait ( _) => ItemKind :: Trait ,
698+ ItemEnum :: TraitAlias ( _) => ItemKind :: TraitAlias ,
699+ ItemEnum :: Impl ( _) => ItemKind :: Impl ,
700+ ItemEnum :: TypeAlias ( _) => ItemKind :: TypeAlias ,
701+ ItemEnum :: Constant { .. } => ItemKind :: Constant ,
702+ ItemEnum :: Static ( _) => ItemKind :: Static ,
703+ ItemEnum :: ExternType => ItemKind :: ExternType ,
704+ ItemEnum :: Macro ( _) => ItemKind :: Macro ,
705+ ItemEnum :: ProcMacro ( pm) => match pm. kind {
706+ MacroKind :: Bang => ItemKind :: Macro ,
707+ MacroKind :: Attr => ItemKind :: ProcAttribute ,
708+ MacroKind :: Derive => ItemKind :: ProcDerive ,
709+ } ,
710+ ItemEnum :: Primitive ( _) => ItemKind :: Primitive ,
711+ ItemEnum :: AssocConst { .. } => ItemKind :: AssocConst ,
712+ ItemEnum :: AssocType { .. } => ItemKind :: AssocType ,
713+ }
714+ }
715+ }
716+
684717/// A module declaration, e.g. `mod foo;` or `mod foo {}`.
685718#[ derive( Clone , Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
686719pub struct Module {
0 commit comments