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: SpanImplementations§
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