Macros to make writing proc-macro crates easy.
This crate provides mainly macros and supporting types and traits
to reduce amount of boilerplate required for working with [syn
].
Currently most of the macros are targeted to construct types that then can be parses to configure proc-macro and proc-derive-macro implementation.
[easy_token!
] - defines new custom token from ident. To be used in other structs.
[easy_parse!
] - defines struct or enum that can be parsed and peeked from stream.
[easy_argument!
] - defines struct with a token as a name and the rest to be parsed as-is.
[easy_argument_group!
] - defines a group of arguments as enum of arguments.
[easy_argument_tuple!
] - specialized version of [easy_argument!
] that parses fields starting from 2nd as [EasyArgumentField
]s inside parenthesis and in any order.
[easy_argument_value!
] - specialized version of [easy_argument!
] for 2 field structs. It defines 2nd field as a value that can be parsed after =
token or inside parenthesis.
[easy_separated!
] - defines struct that parses fields as [EasyArgumentField
]s in any order. Does not accept trailing punctuation.
[easy_terminated!
] - defines struct that parses fields as [EasyArgumentField
]s in any order. Accepts trailing punctuation. Parses whole stream.
[easy_attributes!
] - defines struct that parses fields as [EasyArgumentField
]s from a slice of [Attribute
]s with specified namespace.
[EasyArgumentField
] is implemented for types defined with [easy_token!
], [easy_argument!
], [easy_argument_tuple!
], [easy_argument_value!
] and [easy_argument_group!
] possibly wrapped in [Option
] or [Vec
].
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.