Struct syn::Attribute
[−]
[src]
pub struct Attribute {
pub pound_token: Pound,
pub style: AttrStyle,
pub bracket_token: Bracket,
pub path: Path,
pub tts: TokenStream,
pub is_sugared_doc: bool,
}An attribute like #[repr(transparent)].
This type is available if Syn is built with the "derive" or "full"
feature.
Syntax
Rust has six types of attributes.
- Outer attributes like
#[repr(transparent)]. These appear outside or in front of the item they describe. - Inner attributes like
#![feature(proc_macro)]. These appear inside of the item they describe, usually a module. - Outer doc comments like
/// # Example. - Inner doc comments like
//! Please file an issue. - Outer block comments
/** # Example */. - Inner block comments
/*! Please file an issue */.
The style field of type AttrStyle distinguishes whether an attribute
is outer or inner. Doc comments and block comments are promoted to
attributes that have is_sugared_doc set to true, as this is how they
are processed by the compiler and by macro_rules! macros.
The path field gives the possibly colon-delimited path against which
the attribute is resolved. It is equal to "doc" for desugared doc
comments. The tts field contains the rest of the attribute body as
tokens.
#[derive(Copy)] #[crate::precondition x < 5]
^^^^^^~~~~~~ ^^^^^^^^^^^^^^^^^^^ ~~~~~
path tts path tts
Use the interpret_meta method to try parsing the tokens of an
attribute into the structured representation that is used by convention
across most Rust libraries.
Fields
pound_token: Pound
style: AttrStyle
bracket_token: Bracket
path: Path
tts: TokenStream
is_sugared_doc: bool
Methods
impl Attribute[src]
pub fn parse_inner(i: Cursor) -> PResult<Self>[src]
pub fn parse_outer(i: Cursor) -> PResult<Self>[src]
impl Attribute[src]
pub fn interpret_meta(&self) -> Option<Meta>[src]
Parses the tokens after the path as a Meta if
possible.
Trait Implementations
impl ToTokens for Attribute[src]
fn to_tokens(&self, tokens: &mut Tokens)[src]
Write self to the given Tokens. Read more
fn into_tokens(self) -> Tokens[src]
Convert self directly into a Tokens object. Read more