[−][src]Struct syn::Attribute
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: Poundstyle: AttrStylebracket_token: Bracketpath: Pathtts: TokenStreamis_sugared_doc: boolMethods
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
Auto Trait Implementations
impl !Send for Attribute
impl Unpin for Attribute
impl !Sync for Attribute
impl UnwindSafe for Attribute
impl !RefUnwindSafe for Attribute
Blanket Implementations
impl<T> Spanned for T where
T: ToTokens, [src]
T: ToTokens,
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T[src]
fn clone_into(&self, target: &mut T)[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> From<T> for T[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,