Skip to main content

SingleAttributeParser

Trait SingleAttributeParser 

Source
pub(crate) trait SingleAttributeParser: 'static {
    const PATH: &[Symbol];
    const ALLOWED_TARGETS: AllowedTargets;
    const TEMPLATE: AttributeTemplate;
    const ON_DUPLICATE: OnDuplicate = OnDuplicate::Error;
    const SAFETY: AttributeSafety = AttributeSafety::Normal;

    // Required method
    fn convert(
        cx: &mut AcceptContext<'_, '_>,
        args: &ArgParser,
    ) -> Option<AttributeKind>;
}
Expand description

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.

Single<T> where T: SingleAttributeParser implements AttributeParser.

SingleAttributeParser can only convert attributes one-to-one, and cannot combine multiple attributes together like is necessary for #[stable()] and #[unstable()] for example.

Required Associated Constants§

Source

const PATH: &[Symbol]

The single path of the attribute this parser accepts.

If you need the parser to accept more than one path, use AttributeParser instead

Source

const ALLOWED_TARGETS: AllowedTargets

Source

const TEMPLATE: AttributeTemplate

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

Provided Associated Constants§

Source

const ON_DUPLICATE: OnDuplicate = OnDuplicate::Error

Configures what to do when when the same attribute is applied more than once on the same syntax node.

Source

const SAFETY: AttributeSafety = AttributeSafety::Normal

Required Methods§

Source

fn convert( cx: &mut AcceptContext<'_, '_>, args: &ArgParser, ) -> Option<AttributeKind>

Converts a single syntactical attribute to a single 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 SingleAttributeParser for RustcAutodiffParser

Source§

impl SingleAttributeParser for CfiEncodingParser

Source§

impl SingleAttributeParser for CoverageParser

Source§

impl SingleAttributeParser for ExportNameParser

Source§

impl SingleAttributeParser for OptimizeParser

Source§

impl SingleAttributeParser for PatchableFunctionEntryParser

Source§

impl SingleAttributeParser for RustcObjcClassParser

Source§

impl SingleAttributeParser for RustcObjcSelectorParser

Source§

impl SingleAttributeParser for SanitizeParser

Source§

impl SingleAttributeParser for CrateNameParser

Source§

impl SingleAttributeParser for MoveSizeLimitParser

Source§

impl SingleAttributeParser for PatternComplexityLimitParser

Source§

impl SingleAttributeParser for RecursionLimitParser

Source§

impl SingleAttributeParser for TypeLengthLimitParser

Source§

impl SingleAttributeParser for WindowsSubsystemParser

Source§

impl SingleAttributeParser for DeprecatedParser

Source§

impl SingleAttributeParser for DoNotRecommendParser

Source§

impl SingleAttributeParser for RustcDummyParser

Source§

impl SingleAttributeParser for InlineParser

Source§

impl SingleAttributeParser for RustcForceInlineParser

Source§

impl SingleAttributeParser for InstructionSetParser

Source§

impl SingleAttributeParser for LinkNameParser

Source§

impl SingleAttributeParser for LinkOrdinalParser

Source§

impl SingleAttributeParser for LinkSectionParser

Source§

impl SingleAttributeParser for LinkageParser

Source§

impl SingleAttributeParser for CollapseDebugInfoParser

Source§

impl SingleAttributeParser for MacroExportParser

Source§

impl SingleAttributeParser for MustNotSuspendParser

Source§

impl SingleAttributeParser for MustUseParser

Source§

impl SingleAttributeParser for PathParser

Source§

impl SingleAttributeParser for ProcMacroDeriveParser

Source§

impl SingleAttributeParser for RustcBuiltinMacroParser

Source§

impl SingleAttributeParser for CustomMirParser

Source§

impl SingleAttributeParser for RustcAllocatorZeroedVariantParser

Source§

impl SingleAttributeParser for RustcDumpDefPathParser

Source§

impl SingleAttributeParser for RustcDumpSymbolNameParser

Source§

impl SingleAttributeParser for LangParser

Source§

impl SingleAttributeParser for RustcDeprecatedSafe2024Parser

Source§

impl SingleAttributeParser for RustcDiagnosticItemParser

Source§

impl SingleAttributeParser for RustcDocPrimitiveParser

Source§

impl SingleAttributeParser for RustcIfThisChangedParser

Source§

impl SingleAttributeParser for RustcLayoutScalarValidRangeEndParser

Source§

impl SingleAttributeParser for RustcLayoutScalarValidRangeStartParser

Source§

impl SingleAttributeParser for RustcLegacyConstGenericsParser

Source§

impl SingleAttributeParser for RustcLintOptDenyFieldAccessParser

Source§

impl SingleAttributeParser for RustcMustImplementOneOfParser

Source§

impl SingleAttributeParser for RustcNeverTypeOptionsParser

Source§

impl SingleAttributeParser for RustcReservationImplParser

Source§

impl SingleAttributeParser for RustcScalableVectorParser

Source§

impl SingleAttributeParser for RustcSimdMonomorphizeLaneLimitParser

Source§

impl SingleAttributeParser for IgnoreParser

Source§

impl SingleAttributeParser for ReexportTestHarnessMainParser

Source§

impl SingleAttributeParser for RustcAbiParser

Source§

impl SingleAttributeParser for RustcTestMarkerParser

Source§

impl SingleAttributeParser for ShouldPanicParser

Source§

impl SingleAttributeParser for TestRunnerParser

Source§

impl SingleAttributeParser for RustcSkipDuringMethodDispatchParser

Source§

impl SingleAttributeParser for RustcMacroTransparencyParser

Source§

impl<T: NoArgsAttributeParser> SingleAttributeParser for WithoutArgs<T>

Source§

const PATH: &[Symbol] = T::PATH

Source§

const ON_DUPLICATE: OnDuplicate = T::ON_DUPLICATE

Source§

const SAFETY: AttributeSafety = T::SAFETY

Source§

const ALLOWED_TARGETS: AllowedTargets = T::ALLOWED_TARGETS

Source§

const TEMPLATE: AttributeTemplate