Enum rustc_hir::hir::ItemKind [−][src]
pub enum ItemKind<'hir> {
Show 17 variants
ExternCrate(Option<Symbol>),
Use(&'hir Path<'hir>, UseKind),
Static(&'hir Ty<'hir>, Mutability, BodyId),
Const(&'hir Ty<'hir>, BodyId),
Fn(FnSig<'hir>, Generics<'hir>, BodyId),
Macro(MacroDef),
Mod(Mod<'hir>),
ForeignMod {
abi: Abi,
items: &'hir [ForeignItemRef],
},
GlobalAsm(&'hir InlineAsm<'hir>),
TyAlias(&'hir Ty<'hir>, Generics<'hir>),
OpaqueTy(OpaqueTy<'hir>),
Enum(EnumDef<'hir>, Generics<'hir>),
Struct(VariantData<'hir>, Generics<'hir>),
Union(VariantData<'hir>, Generics<'hir>),
Trait(IsAuto, Unsafety, Generics<'hir>, GenericBounds<'hir>, &'hir [TraitItemRef]),
TraitAlias(Generics<'hir>, GenericBounds<'hir>),
Impl(Impl<'hir>),
}
Variants
An extern crate
item, with optional original crate name if the crate was renamed.
E.g., extern crate foo
or extern crate foo_bar as foo
.
use foo::bar::*;
or use foo::bar::baz as quux;
or just
use foo::bar::baz;
(with as baz
implicitly on the right).
Static(&'hir Ty<'hir>, Mutability, BodyId)
A static
item.
Tuple Fields of Static
A const
item.
A function declaration.
Macro(MacroDef)
A MBE macro definition (macro_rules!
or macro
).
Tuple Fields of Macro
0: MacroDef
Mod(Mod<'hir>)
A module.
Tuple Fields of Mod
0: Mod<'hir>
An external module, e.g. extern { .. }
.
Fields of ForeignMod
abi: Abi
items: &'hir [ForeignItemRef]
GlobalAsm(&'hir InlineAsm<'hir>)
Module-level inline assembly (from global_asm!
).
Tuple Fields of GlobalAsm
0: &'hir InlineAsm<'hir>
A type alias, e.g., type Foo = Bar<u8>
.
OpaqueTy(OpaqueTy<'hir>)
An opaque impl Trait
type alias, e.g., type Foo = impl Bar;
.
Tuple Fields of OpaqueTy
0: OpaqueTy<'hir>
An enum definition, e.g., enum Foo<A, B> {C<A>, D<B>}
.
Struct(VariantData<'hir>, Generics<'hir>)
A struct definition, e.g., struct Foo<A> {x: A}
.
Tuple Fields of Struct
0: VariantData<'hir>
1: Generics<'hir>
Union(VariantData<'hir>, Generics<'hir>)
A union definition, e.g., union Foo<A, B> {x: A, y: B}
.
Tuple Fields of Union
0: VariantData<'hir>
1: Generics<'hir>
Trait(IsAuto, Unsafety, Generics<'hir>, GenericBounds<'hir>, &'hir [TraitItemRef])
A trait definition.
Tuple Fields of Trait
TraitAlias(Generics<'hir>, GenericBounds<'hir>)
A trait alias.
Tuple Fields of TraitAlias
0: Generics<'hir>
1: GenericBounds<'hir>
Impl(Impl<'hir>)
An implementation, e.g., impl<A> Trait for Foo { .. }
.
Tuple Fields of Impl
0: Impl<'hir>
Implementations
Trait Implementations
Auto Trait Implementations
impl<'hir> !RefUnwindSafe for ItemKind<'hir>
impl<'hir> !UnwindSafe for ItemKind<'hir>
Blanket Implementations
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 128 bytes
Size for each variant:
ExternCrate
: 7 bytesUse
: 15 bytesStatic
: 23 bytesConst
: 23 bytesFn
: 87 bytesMacro
: 23 bytesMod
: 31 bytesForeignMod
: 23 bytesGlobalAsm
: 15 bytesTyAlias
: 63 bytesOpaqueTy
: 87 bytesEnum
: 71 bytesStruct
: 87 bytesUnion
: 87 bytesTrait
: 87 bytesTraitAlias
: 71 bytesImpl
: 127 bytes