pub struct Item<'hir> {
pub ident: Ident,
pub owner_id: OwnerId,
pub kind: ItemKind<'hir>,
pub span: Span,
pub vis_span: Span,
}
Expand description
An item
The name might be a dummy name in case of anonymous items
Fields§
§ident: Ident
§owner_id: OwnerId
§kind: ItemKind<'hir>
§span: Span
§vis_span: Span
Implementations§
source§impl<'hir> Item<'hir>
impl<'hir> Item<'hir>
pub fn hir_id(&self) -> HirId
pub fn item_id(&self) -> ItemId
sourcepub fn expect_extern_crate(&self) -> Option<Symbol>
pub fn expect_extern_crate(&self) -> Option<Symbol>
Expect an ItemKind::ExternCrate
or panic.
sourcepub fn expect_use(&self) -> (&'hir UsePath<'hir>, UseKind)
pub fn expect_use(&self) -> (&'hir UsePath<'hir>, UseKind)
Expect an ItemKind::Use
or panic.
sourcepub fn expect_static(&self) -> (&'hir Ty<'hir>, Mutability, BodyId)
pub fn expect_static(&self) -> (&'hir Ty<'hir>, Mutability, BodyId)
Expect an ItemKind::Static
or panic.
sourcepub fn expect_const(&self) -> (&'hir Ty<'hir>, &'hir Generics<'hir>, BodyId)
pub fn expect_const(&self) -> (&'hir Ty<'hir>, &'hir Generics<'hir>, BodyId)
Expect an ItemKind::Const
or panic.
sourcepub fn expect_fn(&self) -> (&FnSig<'hir>, &'hir Generics<'hir>, BodyId)
pub fn expect_fn(&self) -> (&FnSig<'hir>, &'hir Generics<'hir>, BodyId)
Expect an ItemKind::Fn
or panic.
sourcepub fn expect_macro(&self) -> (&MacroDef, MacroKind)
pub fn expect_macro(&self) -> (&MacroDef, MacroKind)
Expect an ItemKind::Macro
or panic.
sourcepub fn expect_mod(&self) -> &'hir Mod<'hir>
pub fn expect_mod(&self) -> &'hir Mod<'hir>
Expect an ItemKind::Mod
or panic.
sourcepub fn expect_foreign_mod(&self) -> (Abi, &'hir [ForeignItemRef])
pub fn expect_foreign_mod(&self) -> (Abi, &'hir [ForeignItemRef])
Expect an ItemKind::ForeignMod
or panic.
sourcepub fn expect_global_asm(&self) -> &'hir InlineAsm<'hir>
pub fn expect_global_asm(&self) -> &'hir InlineAsm<'hir>
Expect an ItemKind::GlobalAsm
or panic.
sourcepub fn expect_ty_alias(&self) -> (&'hir Ty<'hir>, &'hir Generics<'hir>)
pub fn expect_ty_alias(&self) -> (&'hir Ty<'hir>, &'hir Generics<'hir>)
Expect an ItemKind::TyAlias
or panic.
sourcepub fn expect_opaque_ty(&self) -> &OpaqueTy<'hir>
pub fn expect_opaque_ty(&self) -> &OpaqueTy<'hir>
Expect an ItemKind::OpaqueTy
or panic.
sourcepub fn expect_enum(&self) -> (&EnumDef<'hir>, &'hir Generics<'hir>)
pub fn expect_enum(&self) -> (&EnumDef<'hir>, &'hir Generics<'hir>)
Expect an ItemKind::Enum
or panic.
sourcepub fn expect_struct(&self) -> (&VariantData<'hir>, &'hir Generics<'hir>)
pub fn expect_struct(&self) -> (&VariantData<'hir>, &'hir Generics<'hir>)
Expect an ItemKind::Struct
or panic.
sourcepub fn expect_union(&self) -> (&VariantData<'hir>, &'hir Generics<'hir>)
pub fn expect_union(&self) -> (&VariantData<'hir>, &'hir Generics<'hir>)
Expect an ItemKind::Union
or panic.
sourcepub fn expect_trait(
self
) -> (IsAuto, Unsafety, &'hir Generics<'hir>, GenericBounds<'hir>, &'hir [TraitItemRef])
pub fn expect_trait( self ) -> (IsAuto, Unsafety, &'hir Generics<'hir>, GenericBounds<'hir>, &'hir [TraitItemRef])
Expect an ItemKind::Trait
or panic.
sourcepub fn expect_trait_alias(&self) -> (&'hir Generics<'hir>, GenericBounds<'hir>)
pub fn expect_trait_alias(&self) -> (&'hir Generics<'hir>, GenericBounds<'hir>)
Expect an ItemKind::TraitAlias
or panic.
sourcepub fn expect_impl(&self) -> &'hir Impl<'hir>
pub fn expect_impl(&self) -> &'hir Impl<'hir>
Expect an ItemKind::Impl
or panic.
fn expect_failed(&self, expected: &'static str) -> !
Trait Implementations§
source§impl<'hir, __CTX> HashStable<__CTX> for Item<'hir>where
__CTX: HashStableContext,
impl<'hir, __CTX> HashStable<__CTX> for Item<'hir>where __CTX: HashStableContext,
fn hash_stable(&self, __hcx: &mut __CTX, __hasher: &mut StableHasher)
impl<'hir> Copy for Item<'hir>
Auto Trait Implementations§
impl<'hir> !RefUnwindSafe for Item<'hir>
impl<'hir> !Send for Item<'hir>
impl<'hir> !Sync for Item<'hir>
impl<'hir> Unpin for Item<'hir>
impl<'hir> !UnwindSafe for Item<'hir>
Blanket Implementations§
source§impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere T: Copy,
fn allocate_on<'a>(self, arena: &'a Arena<'tcx>) -> &'a mut T
fn allocate_from_iter<'a>( arena: &'a Arena<'tcx>, iter: impl IntoIterator<Item = T> ) -> &'a mut [T]
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
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: 88 bytes