Enum amplify_syn::Attr[][src]

pub enum Attr {
    Singular(SingularAttr),
    Parametrized(ParametrizedAttr),
}

Internal structure representation of a proc macro attribute collected instances having some specific name (accessible via Attr::name()).

Variants

Singular(SingularAttr)

Attribute of #[attr] or #[attr = value] form, which, aside from the case where value is a string literal, may have only a single occurrence (string literals are concatenated into a single value like rust compiler does for #[doc = "..."] attributes).

Parametrized(ParametrizedAttr)

Parametrized attribute in form of #[attr(...)], where parameters are gathered from all attribute occurrences.

Implementations

impl Attr[src]

pub fn with(
    name: impl ToString + AsRef<str>,
    attrs: &Vec<Attribute>
) -> Result<Self, Error>
[src]

Constructs Attr from a vector of all syn-parsed attributes, selecting attributes matching the provided name.

pub fn from_attribute(attr: &Attribute) -> Result<Self, Error>[src]

Constructor parsing Attribute value and returning either SingularAttr or ParametrizedAttr packed in form of Attr enum.

If the attribute does not match either of forms, a Error is returned. Currently, only single type of error may occur in practice:

pub fn try_singular(self) -> Result<SingularAttr, Error>[src]

Returns inner value \in form of SingularAttr for Attr::Singular variant, or fails with Error::SingularAttrRequired otherwise

pub fn try_parametrized(self) -> Result<ParametrizedAttr, Error>[src]

Returns inner value \in form of ParametrizedAttr for Attr::Parametrized variant, or fails with Error::ParametrizedAttrRequired otherwise

pub fn name(&self) -> &str[src]

Returns string reference to the argument name

pub fn arg_value(&self) -> Result<ArgValue, Error>[src]

Returns ArgValue for the Attr::Singular variant or fails with Error::ParametrizedAttrHasNoValue

pub fn literal_value(&self) -> Result<Lit, Error>[src]

Returns literal value for the Attr::Singular variant or fails with Error::ParametrizedAttrHasNoValue. See ArgValue::literal_value for more details.

pub fn type_value(&self) -> Result<Type, Error>[src]

Returns type value for the Attr::Singular variant or fails with Error::ParametrizedAttrHasNoValue. See ArgValue::literal_value for more details.

Trait Implementations

impl Clone for Attr[src]

impl Debug for Attr[src]

Auto Trait Implementations

impl RefUnwindSafe for Attr

impl !Send for Attr

impl !Sync for Attr

impl Unpin for Attr

impl UnwindSafe for Attr

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.