Trait synthez_core::parse::attrs::Attrs[][src]

pub trait Attrs: Default + Parse {
    fn try_merge(self, another: Self) -> Result<Self>;

    fn validate(&self, _: &str, _: Span) -> Result<()> { ... }
fn fallback(&mut self, _: &[Attribute]) -> Result<()> { ... }
fn parse_attrs<T>(name: &str, item: &T) -> Result<Self>
    where
        T: Attrs + Spanned
, { ... } }
Expand description

Parseing of syn::Attributes into a custom defined struct.

Required methods

Tries to merge two sets of parsed attributes into a single one, reporting about duplicates, if any.

Errors

If merging cannot be performed.

Provided methods

Validates these parsed attributes to meet additional invariants, if required.

The provided string contains name of the parsed syn::Attribute, and the provided Span refers to the item this syn::Attribute is applied to. Use them to make reported errors well descriptive.

Errors

If validation fails.

Falls back to another values from syn::Attributes, if required.

Errors

If retrieving fallback values fails.

Parses this structure from the syn::Attributes with the given name and contained in the given item.

If multiple syn::Attributes occur with the same name then they all are parsed separately and then Attrs::try_merged.

If none syn::Attributes occur with the given name then Default value is returned, modulo Attrs::validate.

Errors

Implementations on Foreign Types

Implementors