pub trait TupleMutator<T, TupleKind>: Sized + 'static where
    TupleKind: RefTypes,
    T: TupleStructure<TupleKind>, 
{ type Cache: Clone; type MutationStep: Clone; type ArbitraryStep: Clone; type UnmutateToken;
Show 14 methods fn default_arbitrary_step(&self) -> Self::ArbitraryStep; fn complexity<'a>(
        &self,
        value: TupleKind::Ref<'a>,
        cache: &'a Self::Cache
    ) -> f64; fn is_valid<'a>(&self, value: TupleKind::Ref<'a>) -> bool; fn validate_value<'a>(
        &self,
        value: TupleKind::Ref<'a>
    ) -> Option<Self::Cache>; fn default_mutation_step<'a>(
        &self,
        value: TupleKind::Ref<'a>,
        cache: &'a Self::Cache
    ) -> Self::MutationStep; fn global_search_space_complexity(&self) -> f64; fn max_complexity(&self) -> f64; fn min_complexity(&self) -> f64; fn ordered_arbitrary(
        &self,
        step: &mut Self::ArbitraryStep,
        max_cplx: f64
    ) -> Option<(T, f64)>; fn random_arbitrary(&self, max_cplx: f64) -> (T, f64); fn ordered_mutate<'a>(
        &self,
        value: TupleKind::Mut<'a>,
        cache: &'a mut Self::Cache,
        step: &'a mut Self::MutationStep,
        subvalue_provider: &dyn SubValueProvider,
        max_cplx: f64
    ) -> Option<(Self::UnmutateToken, f64)>; fn random_mutate<'a>(
        &self,
        value: TupleKind::Mut<'a>,
        cache: &'a mut Self::Cache,
        max_cplx: f64
    ) -> (Self::UnmutateToken, f64); fn unmutate<'a>(
        &self,
        value: TupleKind::Mut<'a>,
        cache: &'a mut Self::Cache,
        t: Self::UnmutateToken
    ); fn visit_subvalues<'a>(
        &self,
        value: TupleKind::Ref<'a>,
        cache: &'a Self::Cache,
        visit: &mut dyn FnMut(&'a dyn Any, f64)
    );
}
Expand description

A trait equivalent in every way to Mutator except that it operates on the destructured form of types implementing TupleStructure.

Defer to the documentation of Mutator to understand the purpose of each method.

Required Associated Types

Required Methods

Implementors