Skip to main content

Mutation

Trait Mutation 

Source
pub trait Mutation: Send + Sync {
    // Required methods
    fn describe(&self) -> String;
    fn mutation_type(&self) -> &'static str;
    fn box_clone(&self) -> Box<dyn Mutation>;

    // Provided methods
    fn validate(&self, _file: &PureFile) -> ValidationResult { ... }
    fn can_proceed(&self, file: &PureFile, strategy: ValidationStrategy) -> bool { ... }
}
Expand description

A mutation that can be applied to AST.

§Execution APIs

  • ASTRegApply::apply_to_registry() (V2, preferred): Registry-based execution via ASTMutationContext. Defined in ryo-executor to avoid circular dependencies.

  • apply() (Legacy, deprecated): File-based execution via &mut PureFile. Will be removed in future versions.

§Migration Guide

New mutations should implement ASTRegApply trait in ryo-executor::engine. See ryo-executor::engine::impls for implementation examples.

Required Methods§

Source

fn describe(&self) -> String

Get a description of this mutation

Source

fn mutation_type(&self) -> &'static str

Get the mutation type name

Source

fn box_clone(&self) -> Box<dyn Mutation>

Clone this mutation into a new Box

Provided Methods§

Source

fn validate(&self, _file: &PureFile) -> ValidationResult

Validate the mutation before applying

Returns validation issues that may indicate:

  • Fatal errors (mutation will fail)
  • Conflicts (may conflict with parallel mutations)
  • Warnings (potential issues)
  • Info (informational, no impact)

Default implementation returns no issues (always valid).

Source

fn can_proceed(&self, file: &PureFile, strategy: ValidationStrategy) -> bool

Check if this mutation can proceed with the given strategy

Trait Implementations§

Source§

impl Debug for Box<dyn Mutation>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl Mutation for InsertStatementMutation

Source§

impl Mutation for RemoveStatementMutation

Source§

impl Mutation for ReplaceExprAtMutation

Source§

impl Mutation for ReplaceExprMutation

Source§

impl Mutation for ReplaceStatementMutation

Source§

impl Mutation for WrapExprMutation

Source§

impl Mutation for AddConstMutation

Source§

impl Mutation for AddDeriveMutation

Source§

impl Mutation for AddEnumMutation

Source§

impl Mutation for AddFieldMutation

Source§

impl Mutation for AddFunctionMutation

Source§

impl Mutation for AddImplMutation

Source§

impl Mutation for AddItemMutation

Source§

impl Mutation for AddMatchArmMutation

Source§

impl Mutation for AddMethodMutation

Source§

impl Mutation for AddPureItemsMutation

Source§

impl Mutation for AddStructLiteralFieldMutation

Source§

impl Mutation for AddStructMutation

Source§

impl Mutation for AddTypeAliasMutation

Source§

impl Mutation for AddUseMutation

Source§

impl Mutation for AddVariantMutation

Source§

impl Mutation for ChangeVisibilityMutation

Source§

impl Mutation for CreateModMutation

Source§

impl Mutation for EnumToTraitMutation

Source§

impl Mutation for ExtractTraitMutation

Source§

impl Mutation for InlineTraitMutation

Source§

impl Mutation for MoveItemMutation

Source§

impl Mutation for RemoveConstMutation

Source§

impl Mutation for RemoveDeriveMutation

Source§

impl Mutation for RemoveEnumMutation

Source§

impl Mutation for RemoveFieldMutation

Source§

impl Mutation for RemoveFunctionMutation

Source§

impl Mutation for RemoveImplMutation

Source§

impl Mutation for RemoveItemMutation

Source§

impl Mutation for RemoveMatchArmMutation

Source§

impl Mutation for RemoveMethodMutation

Source§

impl Mutation for RemoveModMutation

Source§

impl Mutation for RemoveStructLiteralFieldMutation

Source§

impl Mutation for RemoveStructMutation

Source§

impl Mutation for RemoveTraitMutation

Source§

impl Mutation for RemoveTypeAliasMutation

Source§

impl Mutation for RemoveUseMutation

Source§

impl Mutation for RemoveVariantMutation

Source§

impl Mutation for RenameMutation

Source§

impl Mutation for ReplaceMatchArmMutation

Source§

impl Mutation for DbgWrapMutation

Source§

impl Mutation for InsertInspectMutation

Source§

impl Mutation for RemoveDebugLogsMutation

Source§

impl Mutation for AssignOpMutation

Source§

impl Mutation for BoolSimplifyMutation

Source§

impl Mutation for CloneOnCopyMutation

Source§

impl Mutation for CollapsibleIfMutation

Source§

impl Mutation for ComparisonToMethodMutation

Source§

impl Mutation for DefaultMutation

Source§

impl Mutation for DeriveDefaultMutation

Source§

impl Mutation for FilterNextMutation

Source§

impl Mutation for IntroduceVariableMutation

Source§

impl Mutation for LockScopeMutation

Source§

impl Mutation for LoopToIteratorMutation

Source§

impl Mutation for ManualMapMutation

Source§

impl Mutation for MapUnwrapOrMutation

Source§

impl Mutation for MatchToIfLetMutation

Source§

impl Mutation for NoOpArmToTodoMutation

Source§

impl Mutation for OrganizeImportsMutation

Source§

impl Mutation for RedundantClosureMutation

Source§

impl Mutation for UnwrapToQuestionMutation

Source§

impl Mutation for UseAtomicMutation

Source§

impl Mutation for UseRwLockMutation