Trait libafl::mutators::scheduled::ScheduledMutator

source ·
pub trait ScheduledMutator<I, MT, S>: ComposedByMutations<I, MT, S> + Mutator<I, S>
where MT: MutatorsTuple<I, S>,
{ // Required methods fn iterations(&self, state: &mut S, input: &I) -> u64; fn schedule(&self, state: &mut S, input: &I) -> MutationId; // Provided method fn scheduled_mutate( &mut self, state: &mut S, input: &mut I ) -> Result<MutationResult, Error> { ... } }
Expand description

A Mutator scheduling multiple Mutators for an input.

Required Methods§

source

fn iterations(&self, state: &mut S, input: &I) -> u64

Compute the number of iterations used to apply stacked mutations

source

fn schedule(&self, state: &mut S, input: &I) -> MutationId

Get the next mutation to apply

Provided Methods§

source

fn scheduled_mutate( &mut self, state: &mut S, input: &mut I ) -> Result<MutationResult, Error>

New default implementation for mutate. Implementations must forward mutate() to this method

Implementors§

source§

impl<I, MT, S> ScheduledMutator<I, MT, S> for StdMOptMutator<I, MT, S>

source§

impl<I, MT, S> ScheduledMutator<I, MT, S> for TuneableScheduledMutator<I, MT, S>
where MT: MutatorsTuple<I, S>, S: HasRand + HasMetadata,

source§

impl<I, MT, S> ScheduledMutator<I, MT, S> for StdScheduledMutator<I, MT, S>
where MT: MutatorsTuple<I, S>, S: HasRand,

source§

impl<I, MT, S, SM> ScheduledMutator<I, MT, S> for LoggerScheduledMutator<I, MT, S, SM>
where MT: MutatorsTuple<I, S> + NamedTuple, S: HasRand + HasCorpus, SM: ScheduledMutator<I, MT, S>,