Type Alias rustc_ast::ast::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 !AstDeref for ForeignItem

§

type Target

source§

fn ast_deref(&self) -> &Self::Target

source§

fn ast_deref_mut(&mut self) -> &mut Self::Target

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 HasSpan for ForeignItem

source§

fn span(&self) -> Span

source§

impl HasTokens 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: 96 bytes