Trait syn_ext::ext::AttributeExt[][src]

pub trait AttributeExt {
    fn from_meta<M>(meta: M) -> Self
    where
        M: IntoAttribute
;
fn try_meta_mut<F, R>(&mut self, f: F) -> Result<R>
    where
        F: FnOnce(&mut Meta) -> Result<R>
;
fn promoted_list(&self) -> Result<MetaList>;
fn try_promoted_list_mut<F, R>(&mut self, paren: Paren, f: F) -> Result<R>
    where
        F: FnOnce(&mut MetaList) -> Result<R>
; }
Expand description

Extension for syn::Attribute

Required methods

Constructs and returns a new syn::Attribute from syn::Meta

Takes a closure and calls it with parsed meta. After call, applys back the manipulated syn::Meta.

  1. Try syn::Attribute::parse_meta; return if Err
  2. Run f
  3. Apply back the manipulated syn::Meta by f.
  4. Return the result of f.

Note: Even f returns Err, meta will be made into self.

Returns a fake promoted list value of syn::MetaList.

If syn::Meta::List, return inner syn::MetaList. If syn::Meta::Path, return a fake syn::MetaList with default paren and empty nested. Otherwise return Err

Takes a closure and calls it with promoted list of parsed meta. After call, applys back the manipulated syn::MetaList.

  1. Try syn::Attribute::parse_meta; return if Err
  2. Promote to syn::Meta::List if syn::Meta::Path
  3. Run f to inner syn::MetaList
  4. Apply back the manipulated syn::Meta by f.
  5. Return the result of f.

Implementations on Foreign Types

Implementors