| use super::prelude::*; | |
| pub(crate) struct LoopMatchParser; | |
| impl<S: Stage> NoArgsAttributeParser<S> for LoopMatchParser { | |
| const PATH: &[Symbol] = &[sym::loop_match]; | |
| const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Warn; | |
| const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[Allow(Target::Expression)]); | |
| const CREATE: fn(Span) -> AttributeKind = AttributeKind::LoopMatch; | |
| } | |
| pub(crate) struct ConstContinueParser; | |
| impl<S: Stage> NoArgsAttributeParser<S> for ConstContinueParser { | |
| const PATH: &[Symbol] = &[sym::const_continue]; | |
| const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Warn; | |
| const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[Allow(Target::Expression)]); | |
| const CREATE: fn(Span) -> AttributeKind = AttributeKind::ConstContinue; | |
| } |