rustc_ast::ast

Type Alias ForeignItem

Source
pub type ForeignItem = Item<ForeignItemKind>;

Aliased Type§

struct ForeignItem {
    pub attrs: ThinVec<Attribute>,
    pub id: NodeId,
    pub span: Span,
    pub vis: Visibility,
    pub ident: Ident,
    pub kind: ForeignItemKind,
    pub tokens: Option<LazyAttrTokenStream>,
}

Fields§

§attrs: ThinVec<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: ForeignItemKind§tokens: Option<LazyAttrTokenStream>

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.

Trait Implementations§

Source§

impl HasAttrs for ForeignItem

Source§

const SUPPORTS_CUSTOM_INNER_ATTRS: bool = true

This is true if this HasAttrs might support ‘custom’ (proc-macro) inner attributes. Attributes like #![cfg] and #![cfg_attr] are not considered ‘custom’ attributes. Read more
Source§

fn attrs(&self) -> &[Attribute]

Source§

fn visit_attrs(&mut self, f: impl FnOnce(&mut AttrVec))

Source§

impl HasNodeId for ForeignItem

Source§

fn node_id(&self) -> NodeId

Source§

fn node_id_mut(&mut self) -> &mut NodeId

Source§

impl HasTokens for ForeignItem

Source§

impl !AstDeref for ForeignItem

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