Trait libafl::state::Evaluator [−][src]
pub trait Evaluator<I>: Sized where
I: Input, { fn evaluate_input<CS, E, EM, OT>(
&mut self,
input: I,
executor: &mut E,
manager: &mut EM,
scheduler: &CS
) -> Result<(bool, Option<usize>), Error>
where
E: Executor<I> + HasObservers<OT> + HasExecHooks<EM, I, Self> + HasObserversHooks<EM, I, OT, Self>,
OT: ObserversTuple + HasExecHooksTuple<EM, I, Self>,
EM: EventManager<I, Self>,
CS: CorpusScheduler<I, Self>; }
Evaluate an input modyfing the state of the fuzzer
Required methods
fn evaluate_input<CS, E, EM, OT>(
&mut self,
input: I,
executor: &mut E,
manager: &mut EM,
scheduler: &CS
) -> Result<(bool, Option<usize>), Error> where
E: Executor<I> + HasObservers<OT> + HasExecHooks<EM, I, Self> + HasObserversHooks<EM, I, OT, Self>,
OT: ObserversTuple + HasExecHooksTuple<EM, I, Self>,
EM: EventManager<I, Self>,
CS: CorpusScheduler<I, Self>,
[src]
&mut self,
input: I,
executor: &mut E,
manager: &mut EM,
scheduler: &CS
) -> Result<(bool, Option<usize>), Error> where
E: Executor<I> + HasObservers<OT> + HasExecHooks<EM, I, Self> + HasObserversHooks<EM, I, OT, Self>,
OT: ObserversTuple + HasExecHooksTuple<EM, I, Self>,
EM: EventManager<I, Self>,
CS: CorpusScheduler<I, Self>,
Runs the input and triggers observers and feedback
Implementors
impl<C, F, I, OF, R, SC> Evaluator<I> for State<C, F, I, OF, R, SC> where
C: Corpus<I>,
I: Input,
R: Rand,
F: Feedback<I>,
SC: Corpus<I>,
OF: Feedback<I>,
[src]
impl<C, F, I, OF, R, SC> Evaluator<I> for State<C, F, I, OF, R, SC> where
C: Corpus<I>,
I: Input,
R: Rand,
F: Feedback<I>,
SC: Corpus<I>,
OF: Feedback<I>,
[src]fn evaluate_input<CS, E, EM, OT>(
&mut self,
input: I,
executor: &mut E,
manager: &mut EM,
scheduler: &CS
) -> Result<(bool, Option<usize>), Error> where
E: Executor<I> + HasObservers<OT> + HasExecHooks<EM, I, Self> + HasObserversHooks<EM, I, OT, Self>,
OT: ObserversTuple + HasExecHooksTuple<EM, I, Self>,
C: Corpus<I>,
EM: EventManager<I, Self>,
CS: CorpusScheduler<I, Self>,
[src]
fn evaluate_input<CS, E, EM, OT>(
&mut self,
input: I,
executor: &mut E,
manager: &mut EM,
scheduler: &CS
) -> Result<(bool, Option<usize>), Error> where
E: Executor<I> + HasObservers<OT> + HasExecHooks<EM, I, Self> + HasObserversHooks<EM, I, OT, Self>,
OT: ObserversTuple + HasExecHooksTuple<EM, I, Self>,
C: Corpus<I>,
EM: EventManager<I, Self>,
CS: CorpusScheduler<I, Self>,
[src]Process one input, adding to the respective corpuses if needed and firing the right events