Crate amplify_syn[−][src]
Expand description
Amplifying Rust language capabilities: helper functions for creating proc macro libraries
Examples
#[name]
- single form
#[name = "literal"]
- optional single value
#[name = TypeName]
- path value
#[name("literal", TypeName, arg = value)]
- list of arguments
Macros
Convenience macro for constructing syn::Ident
from literals
Structs
Structure requirements for parametrized attribute
Drop-in replacement for syn::NestedMeta
, which allows to parse
attributes which can have arguments made of either literal, path or
MetaArgNameValue
expressions.
Drop-in replacement for syn::MetaNameValue
used for parsing named
arguments inside attributes which name is always an proc_macro2::Ident
(and not syn::Path
) and value can be not only a literal, but of any
valid rust type.
Representation for all allowed forms of #[attr(...)]
attribute.
If attribute has a multiple occurrences they are all assembled into a single
list. Repeated named arguments are not allowed and result in errors.
Structure describing a procedural macro attribute with an optional value.
The means that if one has something like #[name1]
, #[name2 = "value"]
,
#[name3 = ::std::path::PathBuf)]
than name1
, name2 = "value"
, and
name3 = ::std::path::PathBuf
are three different attributes which can be
parsed and represented by the SingularAttr
structure.
Enums
Value for attribute or attribute argument, i.e. for #[attr = value]
and
#[attr(arg = value)]
this is the value
part of the attribute. Can be
either a single literal or a single valid rust type name
Requirements for attribute or named argument value presence
Internal structure representation of a proc macro attribute collected
instances having some specific name (accessible via Attr::name()
).
Errors representing inconsistency in proc macro attribute structure
Requirements for list elements. For instance, used in AttrReq
for
providing crate::ParametrizedAttr
fields requirements.
Constrains for literal value type
Drop-in replacement for syn::NestedMeta
, which allows to parse
attributes which can have arguments made of either literal, path or
MetaArgNameValue
expressions.
Constrains for the possible types that a Rust value could have.
Constrains for attribute value type
Requirements for attribute or named argument value presence for a values
with known class. If the value class is not known, use ArgValueReq
instead.