Skip to main content

CombineAttributeParser

Trait CombineAttributeParser 

Source
pub(crate) trait CombineAttributeParser: 'static {
    type Item;

    const PATH: &[Symbol];
    const CONVERT: fn(ThinVec<Self::Item>, Span) -> AttributeKind;
    const ALLOWED_TARGETS: AllowedTargets;
    const TEMPLATE: AttributeTemplate;
    const SAFETY: AttributeSafety = AttributeSafety::Normal;

    // Required method
    fn extend(
        cx: &mut AcceptContext<'_, '_>,
        args: &ArgParser,
    ) -> impl IntoIterator<Item = Self::Item>;
}
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§

Source

const PATH: &[Symbol]

Source

const CONVERT: fn(ThinVec<Self::Item>, Span) -> AttributeKind

A function that converts individual items (of type Item) into the final attribute.

For example, individual representations from #[repr(...)] attributes into an AttributeKind::Repr(x), where x is a vec of these individual reprs.

Source

const ALLOWED_TARGETS: AllowedTargets

Source

const TEMPLATE: AttributeTemplate

The template this attribute parser should implement. Used for diagnostics.

Provided Associated Constants§

Source

const SAFETY: AttributeSafety = AttributeSafety::Normal

Required Associated Types§

Required Methods§

Source

fn extend( cx: &mut AcceptContext<'_, '_>, args: &ArgParser, ) -> impl IntoIterator<Item = Self::Item>

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.

Implementors§

Source§

impl CombineAttributeParser for AllowInternalUnstableParser

Source§

impl CombineAttributeParser for RustcAllowConstFnUnstableParser

Source§

impl CombineAttributeParser for UnstableFeatureBoundParser

Source§

impl CombineAttributeParser for ForceTargetFeatureParser

Source§

impl CombineAttributeParser for TargetFeatureParser

Source§

impl CombineAttributeParser for CrateTypeParser

Source§

impl CombineAttributeParser for FeatureParser

Source§

impl CombineAttributeParser for RegisterToolParser

Source§

impl CombineAttributeParser for DebuggerViualizerParser

Source§

impl CombineAttributeParser for LinkParser

Source§

impl CombineAttributeParser for ReprParser

Source§

impl CombineAttributeParser for RustcDumpLayoutParser

Source§

impl CombineAttributeParser for RustcCleanParser

Source§

impl CombineAttributeParser for RustcMirParser

Source§

impl CombineAttributeParser for RustcThenThisWouldNeedParser

Source§

impl CombineAttributeParser for UnstableRemovedParser