Struct libafl::schedulers::accounting::CoverageAccountingScheduler
source · [−]pub struct CoverageAccountingScheduler<'a, CS, I, S> where
CS: Scheduler<I, S>,
I: Input + HasLen,
S: HasCorpus<I> + HasMetadata + HasRand, { /* private fields */ }
Expand description
A minimizer scheduler using coverage accounting
Implementations
sourceimpl<'a, CS, I, S> CoverageAccountingScheduler<'a, CS, I, S> where
CS: Scheduler<I, S>,
I: Input + HasLen,
S: HasCorpus<I> + HasMetadata + HasRand,
impl<'a, CS, I, S> CoverageAccountingScheduler<'a, CS, I, S> where
CS: Scheduler<I, S>,
I: Input + HasLen,
S: HasCorpus<I> + HasMetadata + HasRand,
sourcepub fn update_accounting_score(
&self,
state: &mut S,
idx: usize
) -> Result<(), Error>
pub fn update_accounting_score(
&self,
state: &mut S,
idx: usize
) -> Result<(), Error>
Update the Corpus
score
sourcepub fn new(state: &mut S, base: CS, accounting_map: &'a [u32]) -> Self
pub fn new(state: &mut S, base: CS, accounting_map: &'a [u32]) -> Self
Creates a new CoverageAccountingScheduler
that wraps a base
Scheduler
and has a default probability to skip non-faved Testcase
s of DEFAULT_SKIP_NON_FAVORED_PROB
.
sourcepub fn with_skip_prob(
state: &mut S,
base: CS,
skip_non_favored_prob: u64,
accounting_map: &'a [u32]
) -> Self
pub fn with_skip_prob(
state: &mut S,
base: CS,
skip_non_favored_prob: u64,
accounting_map: &'a [u32]
) -> Self
Creates a new CoverageAccountingScheduler
that wraps a base
Scheduler
and has a non-default probability to skip non-faved Testcase
s using (skip_non_favored_prob
).
Trait Implementations
sourceimpl<'a, CS: Debug, I: Debug, S: Debug> Debug for CoverageAccountingScheduler<'a, CS, I, S> where
CS: Scheduler<I, S>,
I: Input + HasLen,
S: HasCorpus<I> + HasMetadata + HasRand,
impl<'a, CS: Debug, I: Debug, S: Debug> Debug for CoverageAccountingScheduler<'a, CS, I, S> where
CS: Scheduler<I, S>,
I: Input + HasLen,
S: HasCorpus<I> + HasMetadata + HasRand,
sourceimpl<'a, CS, I, S> Scheduler<I, S> for CoverageAccountingScheduler<'a, CS, I, S> where
CS: Scheduler<I, S>,
I: Input + HasLen,
S: HasCorpus<I> + HasMetadata + HasRand,
impl<'a, CS, I, S> Scheduler<I, S> for CoverageAccountingScheduler<'a, CS, I, S> where
CS: Scheduler<I, S>,
I: Input + HasLen,
S: HasCorpus<I> + HasMetadata + HasRand,
sourcefn on_add(&self, state: &mut S, idx: usize) -> Result<(), Error>
fn on_add(&self, state: &mut S, idx: usize) -> Result<(), Error>
Add an entry to the corpus and return its index
sourcefn on_replace(
&self,
state: &mut S,
idx: usize,
testcase: &Testcase<I>
) -> Result<(), Error>
fn on_replace(
&self,
state: &mut S,
idx: usize,
testcase: &Testcase<I>
) -> Result<(), Error>
Replaces the testcase at the given idx
Auto Trait Implementations
impl<'a, CS, I, S> RefUnwindSafe for CoverageAccountingScheduler<'a, CS, I, S> where
CS: RefUnwindSafe,
I: RefUnwindSafe,
S: RefUnwindSafe,
impl<'a, CS, I, S> Send for CoverageAccountingScheduler<'a, CS, I, S> where
CS: Send,
I: Send,
S: Send,
impl<'a, CS, I, S> Sync for CoverageAccountingScheduler<'a, CS, I, S> where
CS: Sync,
I: Sync,
S: Sync,
impl<'a, CS, I, S> Unpin for CoverageAccountingScheduler<'a, CS, I, S> where
CS: Unpin,
I: Unpin,
S: Unpin,
impl<'a, CS, I, S> UnwindSafe for CoverageAccountingScheduler<'a, CS, I, S> where
CS: UnwindSafe,
I: 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.