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
impl !AstDeref for ForeignItem
source§impl HasAttrs for ForeignItem
impl HasAttrs for ForeignItem
source§const SUPPORTS_CUSTOM_INNER_ATTRS: bool = true
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 morefn attrs(&self) -> &[Attribute]
fn visit_attrs(&mut self, f: impl FnOnce(&mut AttrVec))
source§impl HasNodeId for ForeignItem
impl HasNodeId for ForeignItem
source§impl HasTokens for ForeignItem
impl HasTokens for ForeignItem
fn tokens(&self) -> Option<&LazyAttrTokenStream>
fn tokens_mut(&mut self) -> Option<&mut Option<LazyAttrTokenStream>>
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