Struct rustc_ast::ast::Item [−][src]
pub struct Item<K = ItemKind> {
pub attrs: Vec<Attribute>,
pub id: NodeId,
pub span: Span,
pub vis: Visibility,
pub ident: Ident,
pub kind: K,
pub tokens: Option<LazyTokenStream>,
}
Expand description
An item definition.
Fields
attrs: Vec<Attribute>
id: NodeId
span: Span
vis: Visibility
ident: Ident
The name of the item. It might be a dummy name in case of anonymous items.
kind: K
tokens: Option<LazyTokenStream>
Original tokens this item was parsed from. This isn’t necessarily
available for all items, although over time more and more items should
have this be Some
. Right now this is primarily used for procedural
macros, notably custom attributes.
Note that the tokens here do not include the outer attributes, but will include inner attributes.
Implementations
Return the span that encompasses the attributes.
Trait Implementations
This is true
if this AstLike
might support ‘custom’ (proc-macro) inner
attributes. Attributes like #![cfg]
and #![cfg_attr]
are not
considered ‘custom’ attributes Read more
Auto Trait Implementations
impl<K = ItemKind> !RefUnwindSafe for Item<K>
impl<K = ItemKind> !UnwindSafe for Item<K>
Blanket Implementations
Mutably borrows from an owned value. Read more
Layout
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.