[][src]Trait proc_macro_roids::DeriveInputExt

pub trait DeriveInputExt {
    fn append_derives(&mut self, derives: Punctuated<NestedMeta, Comma>);
fn tag_parameter<NS, Tag>(&self, namespace: NS, tag: Tag) -> Option<Meta>
    where
        NS: Display,
        Tag: Display,
        Ident: PartialEq<NS>,
        Ident: PartialEq<Tag>
;
fn tag_parameters<NS, Tag>(&self, namespace: NS, tag: Tag) -> Vec<Meta>
    where
        NS: Display,
        Tag: Display,
        Ident: PartialEq<NS>,
        Ident: PartialEq<Tag>
; }

Functions to make it ergonomic to work with struct ASTs.

Required methods

fn append_derives(&mut self, derives: Punctuated<NestedMeta, Comma>)

Appends derives to the list of derives.

Note: This can only be used with attribute macros, and not derive macros.

  • If the derive attribute does not exist, one will be created.
  • If the derive attribute exists, and there are existing derives that overlap with the derives to append, this macro will panic with the overlapping derives.
  • If the derive attribute exists, and there are no overlapping derives, then they will be combined.

Panics

Panics if there are existing derives that overlap with the derives to append.

fn tag_parameter<NS, Tag>(&self, namespace: NS, tag: Tag) -> Option<Meta> where
    NS: Display,
    Tag: Display,
    Ident: PartialEq<NS>,
    Ident: PartialEq<Tag>, 

Returns the parameter from #[namespace(tag(parameter))].

Parameters

  • namespace: The name() of the first-level attribute.
  • tag: The name() of the second-level attribute.

Panics

Panics if there is more than one parameter for the tag.

fn tag_parameters<NS, Tag>(&self, namespace: NS, tag: Tag) -> Vec<Meta> where
    NS: Display,
    Tag: Display,
    Ident: PartialEq<NS>,
    Ident: PartialEq<Tag>, 

Returns the parameters from #[namespace(tag(param1, param2, ..))].

Parameters

  • namespace: The name() of the first-level attribute.
  • tag: The name() of the second-level attribute.
Loading content...

Implementations on Foreign Types

impl DeriveInputExt for DeriveInput[src]

Loading content...

Implementors

Loading content...