Enum rustc_expand::base::SyntaxExtensionKind [−][src]
pub enum SyntaxExtensionKind {
Bang(Box<dyn ProcMacro + Sync + Send>),
LegacyBang(Box<dyn TTMacroExpander + Sync + Send>),
Attr(Box<dyn AttrProcMacro + Sync + Send>),
LegacyAttr(Box<dyn MultiItemModifier + Sync + Send>),
NonMacroAttr {
mark_used: bool,
},
Derive(Box<dyn MultiItemModifier + Sync + Send>),
LegacyDerive(Box<dyn MultiItemModifier + Sync + Send>),
}Expand description
A syntax extension kind.
Variants
A token-based function-like macro.
LegacyBang(Box<dyn TTMacroExpander + Sync + Send>)An AST-based function-like macro.
Attr(Box<dyn AttrProcMacro + Sync + Send>)A token-based attribute macro.
LegacyAttr(Box<dyn MultiItemModifier + Sync + Send>)An AST-based attribute macro.
A trivial attribute “macro” that does nothing, only keeps the attribute and marks it as inert, thus making it ineligible for further expansion.
Show fields
Fields of NonMacroAttr
mark_used: boolSuppresses the unused_attributes lint for this attribute.
Derive(Box<dyn MultiItemModifier + Sync + Send>)A token-based derive macro.
LegacyDerive(Box<dyn MultiItemModifier + Sync + Send>)An AST-based derive macro.
Auto Trait Implementations
impl !RefUnwindSafe for SyntaxExtensionKindimpl !Send for SyntaxExtensionKindimpl !Sync for SyntaxExtensionKindimpl Unpin for SyntaxExtensionKindimpl !UnwindSafe for SyntaxExtensionKindBlanket Implementations
Layout
Note: Most layout information is completely unstable and may be different between compiler versions and platforms. The only exception is types with certain repr(...) attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 24 bytes