Trait InlineMacroExprPlugin

Source
pub trait InlineMacroExprPlugin:
    Debug
    + Sync
    + Send
    + Any {
    // Required method
    fn generate_code(
        &self,
        db: &dyn SyntaxGroup,
        item_ast: &ExprInlineMacro,
        metadata: &MacroPluginMetadata<'_>,
    ) -> InlinePluginResult;

    // Provided methods
    fn documentation(&self) -> Option<String> { ... }
    fn plugin_type_id(&self) -> TypeId { ... }
}

Required Methods§

Source

fn generate_code( &self, db: &dyn SyntaxGroup, item_ast: &ExprInlineMacro, metadata: &MacroPluginMetadata<'_>, ) -> InlinePluginResult

Generates code for an item. If no code should be generated returns None. Otherwise, returns (virtual_module_name, module_content), and a virtual submodule with that name and content should be created.

Provided Methods§

Source

fn documentation(&self) -> Option<String>

Allows for the plugin to provide documentation for an inline macro.

Source

fn plugin_type_id(&self) -> TypeId

A TypeId of the plugin, used to compare the concrete types of plugins given as trait objects.

Implementors§