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]
impl Attribute
pub fn parse_inner(i: Cursor) -> PResult<Self>
[src]
pub fn parse_inner(i: Cursor) -> PResult<Self>
pub fn parse_outer(i: Cursor) -> PResult<Self>
[src]
pub fn parse_outer(i: Cursor) -> PResult<Self>
impl Attribute
[src]
impl Attribute
pub fn interpret_meta(&self) -> Option<Meta>
[src]
pub fn interpret_meta(&self) -> Option<Meta>
Parses the tokens after the path as a Meta
if
possible.
Trait Implementations
impl ToTokens for Attribute
[src]
impl ToTokens for Attribute
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
Write self
to the given TokenStream
. Read more
fn into_token_stream(self) -> TokenStream
[src]
fn into_token_stream(self) -> TokenStream
Convert self
directly into a TokenStream
object. Read more
impl Clone for Attribute
[src]
impl Clone for Attribute