pub(crate) trait CombineAttributeParser: 'static {
type Item;
const PATH: &'static [Symbol];
const CONVERT: fn(ThinVec<Self::Item>) -> AttributeKind;
// Required method
fn extend<'a>(
cx: &'a AcceptContext<'a>,
args: &'a ArgParser<'a>,
) -> impl IntoIterator<Item = Self::Item> + 'a;
}
Expand description
Alternative to AttributeParser
that automatically handles state management.
If multiple attributes appear on an element, combines the values of each into a
ThinVec
.
Combine<T> where T: CombineAttributeParser
implements AttributeParser
.
CombineAttributeParser
can only convert a single kind of attribute, and cannot combine multiple
attributes together like is necessary for #[stable()]
and #[unstable()]
for example.
Required Associated Constants§
Required Associated Types§
Required Methods§
Sourcefn extend<'a>(
cx: &'a AcceptContext<'a>,
args: &'a ArgParser<'a>,
) -> impl IntoIterator<Item = Self::Item> + 'a
fn extend<'a>( cx: &'a AcceptContext<'a>, args: &'a ArgParser<'a>, ) -> impl IntoIterator<Item = Self::Item> + 'a
Converts a single syntactical attribute to a number of elements of the semantic attribute, or AttributeKind
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.