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

Methods

impl Attribute
[src]

impl Attribute
[src]

[src]

Parses the tokens after the path as a Meta if possible.

Trait Implementations

impl ToTokens for Attribute
[src]

[src]

Write self to the given Tokens. Read more

[src]

Convert self directly into a Tokens object. Read more

impl Debug for Attribute
[src]

[src]

Formats the value using the given formatter.

impl Clone for Attribute
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl Eq for Attribute
[src]

impl PartialEq for Attribute
[src]

[src]

This method tests for self and other values to be equal, and is used by ==. Read more

1.0.0
[src]

This method tests for !=.

impl Hash for Attribute
[src]

[src]

Feeds this value into the given [Hasher]. Read more

1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more