pub trait ASTRegApply: Mutation {
// Required method
fn apply_to_registry(
&self,
ctx: &mut ASTMutationContext<'_>,
) -> MutationResult;
}Expand description
Trait for mutations that can be applied to ASTRegistry
Extends the base Mutation trait with registry-based execution.
This is the primary execution path for the new AST-centric architecture.
§Implementing
Mutations that want to support registry-based execution should:
- Implement this trait
- Use
ctx.lookup()to find target symbols - Use
ctx.get_ast_mut()to modify AST - Use
ctx.emit_*()to record changes
§Fallback
If a mutation doesn’t implement this trait, ASTMutationEngine
will return no changes. The legacy apply(&mut PureFile) path
remains available for backward compatibility.
Required Methods§
Sourcefn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl ASTRegApply for AddConstMutation
impl ASTRegApply for AddConstMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for AddTypeAliasMutation
impl ASTRegApply for AddTypeAliasMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for RemoveConstMutation
impl ASTRegApply for RemoveConstMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for RemoveTypeAliasMutation
impl ASTRegApply for RemoveTypeAliasMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for CreateModMutation
impl ASTRegApply for CreateModMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for AddDeriveMutation
impl ASTRegApply for AddDeriveMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for RemoveDeriveMutation
impl ASTRegApply for RemoveDeriveMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for AddEnumMutation
impl ASTRegApply for AddEnumMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for AddVariantMutation
impl ASTRegApply for AddVariantMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for RemoveEnumMutation
impl ASTRegApply for RemoveEnumMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for RemoveVariantMutation
impl ASTRegApply for RemoveVariantMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for AddFieldMutation
impl ASTRegApply for AddFieldMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for AddStructLiteralFieldMutation
impl ASTRegApply for AddStructLiteralFieldMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for RemoveFieldMutation
impl ASTRegApply for RemoveFieldMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for RemoveStructLiteralFieldMutation
impl ASTRegApply for RemoveStructLiteralFieldMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for AddFunctionMutation
impl ASTRegApply for AddFunctionMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for RemoveFunctionMutation
impl ASTRegApply for RemoveFunctionMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for AddImplMutation
impl ASTRegApply for AddImplMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for RemoveImplMutation
impl ASTRegApply for RemoveImplMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for AddItemMutation
impl ASTRegApply for AddItemMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for AddPureItemsMutation
impl ASTRegApply for AddPureItemsMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for MoveItemMutation
impl ASTRegApply for MoveItemMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for RemoveItemMutation
impl ASTRegApply for RemoveItemMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for AddMatchArmMutation
impl ASTRegApply for AddMatchArmMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for RemoveMatchArmMutation
impl ASTRegApply for RemoveMatchArmMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for ReplaceMatchArmMutation
impl ASTRegApply for ReplaceMatchArmMutation
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for AddMethodMutation
New design: Add method directly to Struct/Enum
impl ASTRegApply for AddMethodMutation
New design: Add method directly to Struct/Enum
Flow:
- Register method as Type::method in SymbolRegistry
- Store method AST in ASTRegistry
- Add/update plain impl block in parent module’s module_items
fn apply_to_registry(&self, ctx: &mut ASTMutationContext<'_>) -> MutationResult
Source§impl ASTRegApply for RemoveMethodMutation
New design: Remove method directly from Struct/Enum
impl ASTRegApply for RemoveMethodMutation
New design: Remove method directly from Struct/Enum