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 Attributepub 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 Attributepub 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 Attributefn 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) -> TokenStreamConvert self directly into a TokenStream object. Read more
impl Debug for Attribute[src]
impl Debug for Attributefn fmt(&self, f: &mut Formatter) -> Result[src]
fn fmt(&self, f: &mut Formatter) -> ResultFormats the value using the given formatter. Read more
impl Clone for Attribute[src]
impl Clone for Attributefn clone(&self) -> Attribute[src]
fn clone(&self) -> AttributeReturns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)Performs copy-assignment from source. Read more
impl Eq for Attribute[src]
impl Eq for Attributeimpl PartialEq for Attribute[src]
impl PartialEq for Attributefn eq(&self, other: &Self) -> bool[src]
fn eq(&self, other: &Self) -> boolThis method tests for self and other values to be equal, and is used by ==. Read more
#[must_use]
fn ne(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]
fn ne(&self, other: &Rhs) -> boolThis method tests for !=.
impl Hash for Attribute[src]
impl Hash for Attribute