Expand description
All the individual attribute parsers for each of rustcβs built-in attributes.
This module defines traits for attribute parsers, little state machines that recognize and parse
attributes out of a longer list of attributes. The main trait is called AttributeParser
.
You can find more docs about AttributeParser
s on the trait itself.
However, for many types of attributes, implementing AttributeParser
is not necessary.
It allows for a lot of flexibility you might not want.
Specifically, you might not care about managing the state of your AttributeParser
state machine yourself. In this case you can choose to implement:
SingleAttributeParser
: makes it easy to implement an attribute which should error if it appears more than once in a list of attributesCombineAttributeParser
: makes it easy to implement an attribute which should combine the contents of attributes, if an attribute appear multiple times in a list
Attributes should be added to crate::context::ATTRIBUTE_PARSERS
to be parsed.
ModulesΒ§
- allow_
unstable π - body π
- Attributes that can be found in function body.
- cfg π
- cfg_old π
- codegen_
attrs π - confusables π
- crate_
level π - deprecation π
- dummy π
- inline π
- link_
attrs π - lint_
helpers π - loop_
match π - macro_
attrs π - must_
use π - no_
implicit_ πprelude - non_
exhaustive π - path π
- prelude π
- All the parsers require roughly the same imports, so this prelude has most of the often-needed ones.
- proc_
macro_ πattrs - prototype π
- Attributes that are only used on function prototypes.
- repr π
- rustc_
internal π - semantics π
- stability π
- test_
attrs π - traits π
- transparency π
- util π
StructsΒ§
- Combine π
- Use in combination with
CombineAttributeParser
.Combine<T: CombineAttributeParser>
implementsAttributeParser
. - Single π
- Use in combination with
SingleAttributeParser
.Single<T: SingleAttributeParser>
implementsAttributeParser
. - Without
Args π
EnumsΒ§
- Attribute
Order π - OnDuplicate π
TraitsΒ§
- Attribute
Parser π - An
AttributeParser
is a type which searches for syntactic attributes. - Combine
Attribute πParser - Alternative to
AttributeParser
that automatically handles state management. If multiple attributes appear on an element, combines the values of each into aThinVec
.Combine<T> where T: CombineAttributeParser
implementsAttributeParser
. - NoArgs
Attribute πParser - An even simpler version of
SingleAttributeParser
: now automatically check that there are no arguments provided to the attribute. - Single
Attribute πParser - Alternative to
AttributeParser
that automatically handles state management. A slightly simpler and more restricted way to convert attributes. Assumes that an attribute can only appear a single time on an item, and errors when it sees more.
Type AliasesΒ§
- Accept
Fn π - Accept
Mapping π - Convert
Fn π