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§
Sourcefn generate_code(
&self,
db: &dyn SyntaxGroup,
item_ast: &ExprInlineMacro,
metadata: &MacroPluginMetadata<'_>,
) -> InlinePluginResult
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§
Sourcefn documentation(&self) -> Option<String>
fn documentation(&self) -> Option<String>
Allows for the plugin to provide documentation for an inline macro.
Sourcefn plugin_type_id(&self) -> TypeId
fn plugin_type_id(&self) -> TypeId
A TypeId
of the plugin, used to compare the concrete types
of plugins given as trait objects.