Struct butterfly_fuzz::PacketMutationScheduler
source · [−]pub struct PacketMutationScheduler<I, MT, S> where
I: Input,
MT: MutatorsTuple<I, S>,
S: HasRand, { /* private fields */ }Expand description
A mutation scheduler for butterflys mutators.
It schedules them in such a way that only one mutator in the list
gets executed per run because the mutators may implement their own scheduling,
like the PacketHavocMutator, which stacks
havoc mutations on its own.
Implementations
sourceimpl<I, MT, S> PacketMutationScheduler<I, MT, S> where
I: Input,
MT: MutatorsTuple<I, S>,
S: HasRand,
impl<I, MT, S> PacketMutationScheduler<I, MT, S> where
I: Input,
MT: MutatorsTuple<I, S>,
S: HasRand,
Trait Implementations
sourceimpl<I, MT, S> ComposedByMutations<I, MT, S> for PacketMutationScheduler<I, MT, S> where
I: Input,
MT: MutatorsTuple<I, S>,
S: HasRand,
impl<I, MT, S> ComposedByMutations<I, MT, S> for PacketMutationScheduler<I, MT, S> where
I: Input,
MT: MutatorsTuple<I, S>,
S: HasRand,
sourceimpl<I, MT, S> Mutator<I, S> for PacketMutationScheduler<I, MT, S> where
I: Input,
MT: MutatorsTuple<I, S>,
S: HasRand,
impl<I, MT, S> Mutator<I, S> for PacketMutationScheduler<I, MT, S> where
I: Input,
MT: MutatorsTuple<I, S>,
S: HasRand,
sourceimpl<I, MT, S> ScheduledMutator<I, MT, S> for PacketMutationScheduler<I, MT, S> where
I: Input,
MT: MutatorsTuple<I, S>,
S: HasRand,
impl<I, MT, S> ScheduledMutator<I, MT, S> for PacketMutationScheduler<I, MT, S> where
I: Input,
MT: MutatorsTuple<I, S>,
S: HasRand,
sourcefn iterations(&self, _state: &mut S, _input: &I) -> u64
fn iterations(&self, _state: &mut S, _input: &I) -> u64
Compute the number of iterations used to apply stacked mutations
sourcefn scheduled_mutate(
&mut self,
state: &mut S,
input: &mut I,
stage_idx: i32
) -> Result<MutationResult, Error>
fn scheduled_mutate(
&mut self,
state: &mut S,
input: &mut I,
stage_idx: i32
) -> Result<MutationResult, Error>
New default implementation for mutate. Implementations must forward mutate() to this method Read more
Auto Trait Implementations
impl<I, MT, S> RefUnwindSafe for PacketMutationScheduler<I, MT, S> where
I: RefUnwindSafe,
MT: RefUnwindSafe,
S: RefUnwindSafe,
impl<I, MT, S> Send for PacketMutationScheduler<I, MT, S> where
I: Send,
MT: Send,
S: Send,
impl<I, MT, S> Sync for PacketMutationScheduler<I, MT, S> where
I: Sync,
MT: Sync,
S: Sync,
impl<I, MT, S> Unpin for PacketMutationScheduler<I, MT, S> where
I: Unpin,
MT: Unpin,
S: Unpin,
impl<I, MT, S> UnwindSafe for PacketMutationScheduler<I, MT, S> where
I: UnwindSafe,
MT: UnwindSafe,
S: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Tail, T> Prepend<T> for Tail
impl<Tail, T> Prepend<T> for Tail
type PreprendResult = Tail
type PreprendResult = Tail
The Resulting [TupleList], of an Prepend::prepend() call,
including the prepended entry. Read more
sourcefn prepend(self, value: T) -> (T, <Tail as Prepend<T>>::PreprendResult)
fn prepend(self, value: T) -> (T, <Tail as Prepend<T>>::PreprendResult)
Prepend a value to this tuple, returning a new tuple with prepended value.