Struct puffin::fuzzer::stages::PuffinMutationalStage

source ·
pub struct PuffinMutationalStage<E, EM, I, M, Z> {
    mutator: M,
    phantom: PhantomData<(E, EM, I, Z)>,
    max_iterations_per_stage: u64,
}
Expand description

The default mutational stage

Fields§

§mutator: M§phantom: PhantomData<(E, EM, I, Z)>§max_iterations_per_stage: u64

Implementations§

source§

impl<E, EM, I, M, Z> PuffinMutationalStage<E, EM, I, M, Z>
where I: Input, E: UsesState<State = Z::State>, EM: UsesState<State = Z::State>, M: Mutator<I, Z::State>, Z: Evaluator<E, EM>,

source

pub fn new(mutator: M, max_iterations_per_stage: u64) -> Self

Creates a new default mutational stage

Trait Implementations§

source§

impl<E: Clone, EM: Clone, I: Clone, M: Clone, Z: Clone> Clone for PuffinMutationalStage<E, EM, I, M, Z>

source§

fn clone(&self) -> PuffinMutationalStage<E, EM, I, M, Z>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<E: Debug, EM: Debug, I: Debug, M: Debug, Z: Debug> Debug for PuffinMutationalStage<E, EM, I, M, Z>

source§

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

Formats the value using the given formatter. Read more
source§

impl<E, EM, I, M, Z> MutationalStage<E, EM, I, M, Z> for PuffinMutationalStage<E, EM, I, M, Z>
where E: UsesState<State = Z::State>, EM: UsesState<State = Z::State>, M: Mutator<I, Z::State>, Z: Evaluator<E, EM>, Z::State: HasClientPerfMonitor + HasCorpus + HasRand, I: MutatedTransform<Self::Input, Self::State> + Clone,

source§

fn mutator(&self) -> &M

The mutator, added to this stage

source§

fn mutator_mut(&mut self) -> &mut M

The list of mutators, added to this stage (as mutable ref)

source§

fn iterations( &self, state: &mut Z::State, _corpus_idx: CorpusId, ) -> Result<u64, Error>

Gets the number of iterations as a random number

§

fn perform_mutational( &mut self, fuzzer: &mut Z, executor: &mut E, state: &mut <Z as UsesState>::State, manager: &mut EM, corpus_idx: CorpusId, ) -> Result<(), Error>

Runs this (mutational) stage for the given testcase
source§

impl<E, EM, I, M, Z> Stage<E, EM, Z> for PuffinMutationalStage<E, EM, I, M, Z>
where E: UsesState<State = Z::State>, EM: UsesState<State = Z::State>, M: Mutator<I, Z::State>, Z: Evaluator<E, EM>, Z::State: HasClientPerfMonitor + HasCorpus + HasRand, I: MutatedTransform<Self::Input, Self::State> + Clone,

source§

fn perform( &mut self, fuzzer: &mut Z, executor: &mut E, state: &mut Z::State, manager: &mut EM, corpus_idx: CorpusId, ) -> Result<(), Error>

Run the stage
source§

impl<E, EM, I, M, Z> UsesState for PuffinMutationalStage<E, EM, I, M, Z>
where E: UsesState<State = Z::State>, EM: UsesState<State = Z::State>, M: Mutator<I, Z::State>, Z: Evaluator<E, EM>, Z::State: HasClientPerfMonitor + HasCorpus + HasRand,

source§

type State = <Z as UsesState>::State

The state known by this type.

Auto Trait Implementations§

§

impl<E, EM, I, M, Z> Freeze for PuffinMutationalStage<E, EM, I, M, Z>
where M: Freeze,

§

impl<E, EM, I, M, Z> RefUnwindSafe for PuffinMutationalStage<E, EM, I, M, Z>

§

impl<E, EM, I, M, Z> Send for PuffinMutationalStage<E, EM, I, M, Z>
where M: Send, E: Send, EM: Send, I: Send, Z: Send,

§

impl<E, EM, I, M, Z> Sync for PuffinMutationalStage<E, EM, I, M, Z>
where M: Sync, E: Sync, EM: Sync, I: Sync, Z: Sync,

§

impl<E, EM, I, M, Z> Unpin for PuffinMutationalStage<E, EM, I, M, Z>
where M: Unpin, E: Unpin, EM: Unpin, I: Unpin, Z: Unpin,

§

impl<E, EM, I, M, Z> UnwindSafe for PuffinMutationalStage<E, EM, I, M, Z>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> AsAny for T
where T: 'static,

source§

fn as_any(&self) -> &(dyn Any + 'static)

source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CloneAny for T
where T: Any + Clone + Send + Sync,

§

fn clone_any(&self) -> Box<dyn CloneAny>

§

fn clone_any_send(&self) -> Box<dyn CloneAny + Send>

§

fn clone_any_sync(&self) -> Box<dyn CloneAny + Sync>

§

fn clone_any_send_sync(&self) -> Box<dyn CloneAny + Sync + Send>

source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> DynClone for T
where T: Clone,

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<Tail, T> Prepend<T> for Tail

§

type PreprendResult = Tail

The Resulting [TupleList], of an [Prepend::prepend()] call, including the prepended entry.
§

fn prepend(self, value: T) -> (T, <Tail as Prepend<T>>::PreprendResult)

Prepend a value to this tuple, returning a new tuple with prepended value.
source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<KS> UsesInput for KS
where KS: UsesState,

§

type Input = <<KS as UsesState>::State as UsesInput>::Input

Type which will be used throughout this state.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> DebugAny for T
where T: Any + Debug,

§

impl<T> MaybeHasScalabilityMonitor for T

§

impl<T> UnsafeAny for T
where T: Any,