[−][src]Enum rustc_hir::hir::ItemKind

pub enum ItemKind<'hir> {
    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),
    Mod(Mod<'hir>),
    ForeignMod(ForeignMod<'hir>),
    GlobalAsm(&'hir GlobalAsm),
    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 {
        unsafety: Unsafety,
        polarity: ImplPolarity,
        defaultness: Defaultness,
        defaultness_span: Option<Span>,
        constness: Constness,
        generics: Generics<'hir>,
        of_trait: Option<TraitRef<'hir>>,
        self_ty: &'hir Ty<'hir>,
        items: &'hir [ImplItemRef<'hir>],
    },
}

Variants

ExternCrate(Option<Symbol>)

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(&'hir Path<'hir>, UseKind)

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.

Const(&'hir Ty<'hir>, BodyId)

A const item.

Fn(FnSig<'hir>, Generics<'hir>, BodyId)

A function declaration.

Mod(Mod<'hir>)

A module.

ForeignMod(ForeignMod<'hir>)

An external module, e.g. extern { .. }.

GlobalAsm(&'hir GlobalAsm)

Module-level inline assembly (from global_asm!).

TyAlias(&'hir Ty<'hir>, Generics<'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;.

Enum(EnumDef<'hir>, Generics<'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}.

Union(VariantData<'hir>, Generics<'hir>)

A union definition, e.g., union Foo<A, B> {x: A, y: B}.

Trait(IsAuto, Unsafety, Generics<'hir>, GenericBounds<'hir>, &'hir [TraitItemRef])

A trait definition.

TraitAlias(Generics<'hir>, GenericBounds<'hir>)

A trait alias.

Impl

An implementation, e.g., impl<A> Trait for Foo { .. }.

Fields of Impl

unsafety: Unsafetypolarity: ImplPolaritydefaultness: Defaultnessdefaultness_span: Option<Span>constness: Constnessgenerics: Generics<'hir>of_trait: Option<TraitRef<'hir>>

The trait being implemented, if any.

self_ty: &'hir Ty<'hir>items: &'hir [ImplItemRef<'hir>]

Implementations

impl<'_> ItemKind<'_>[src]

pub fn generics(&self) -> Option<&Generics<'_>>[src]

Trait Implementations

impl<'hir> Debug for ItemKind<'hir>[src]

impl<'hir, __CTX> HashStable<__CTX> for ItemKind<'hir> where
    __CTX: HashStableContext, 
[src]

Auto Trait Implementations

impl<'hir> !RefUnwindSafe for ItemKind<'hir>

impl<'hir> !Send for ItemKind<'hir>

impl<'hir> !Sync for ItemKind<'hir>

impl<'hir> Unpin for ItemKind<'hir>

impl<'hir> !UnwindSafe for ItemKind<'hir>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized, 
[src]

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.