Trait libafl::corpus::CorpusScheduler [−][src]
pub trait CorpusScheduler<I, S> where
I: Input, { fn next(&self, state: &mut S) -> Result<usize, Error>; fn on_add(&self, _state: &mut S, _idx: usize) -> Result<(), Error> { ... } fn on_replace(
&self,
_state: &mut S,
_idx: usize,
_testcase: &Testcase<I>
) -> Result<(), Error> { ... } fn on_remove(
&self,
_state: &mut S,
_idx: usize,
_testcase: &Option<Testcase<I>>
) -> Result<(), Error> { ... } }
Expand description
The scheduler define how the fuzzer requests a testcase from the corpus. It has hooks to corpus add/replace/remove to allow complex scheduling algorithms to collect data.
Required methods
Provided methods
Add an entry to the corpus and return its index
Replaces the testcase at the given idx
Implementors
impl<C, CS, F, I, M, R, S> CorpusScheduler<I, S> for MinimizerCorpusScheduler<C, CS, F, I, M, R, S> where
CS: CorpusScheduler<I, S>,
F: FavFactor<I>,
I: Input,
M: AsSlice<usize> + SerdeAny,
S: HasCorpus<C, I> + HasMetadata + HasRand<R>,
C: Corpus<I>,
R: Rand,
impl<C, I, R, S> CorpusScheduler<I, S> for RandCorpusScheduler<C, I, R, S> where
S: HasCorpus<C, I> + HasRand<R>,
C: Corpus<I>,
I: Input,
R: Rand,
impl<C, I, S> CorpusScheduler<I, S> for QueueCorpusScheduler<C, I, S> where
S: HasCorpus<C, I>,
C: Corpus<I>,
I: Input,