Trait libafl::fuzzer::Evaluator[][src]

pub trait Evaluator<E, EM, I, S> {
    fn evaluate_input(
        &mut self,
        state: &mut S,
        executor: &mut E,
        manager: &mut EM,
        input: I
    ) -> Result<(bool, Option<usize>), Error>; }
Expand description

Evaluate an input modyfing the state of the fuzzer

Required methods

fn evaluate_input(
    &mut self,
    state: &mut S,
    executor: &mut E,
    manager: &mut EM,
    input: I
) -> Result<(bool, Option<usize>), Error>
[src]

Runs the input and triggers observers and feedback, returns if is interesting an (option) the index of the new testcase in the corpus

Implementors

impl<C, CS, E, EM, F, I, OF, OT, S, SC> Evaluator<E, EM, I, S> for StdFuzzer<C, CS, F, I, OF, OT, S, SC> where
    C: Corpus<I>,
    CS: CorpusScheduler<I, S>,
    E: Executor<I> + HasObservers<OT> + HasExecHooks<EM, I, S, Self> + HasObserversHooks<EM, I, OT, S, Self>,
    OT: ObserversTuple + HasExecHooksTuple<EM, I, S, Self>,
    EM: EventManager<E, I, S, Self>,
    F: Feedback<I, S>,
    I: Input,
    OF: Feedback<I, S>,
    S: HasExecutions + HasCorpus<C, I> + HasSolutions<SC, I> + HasClientPerfStats,
    SC: Corpus<I>, 
[src]

fn evaluate_input(
    &mut self,
    state: &mut S,
    executor: &mut E,
    manager: &mut EM,
    input: I
) -> Result<(bool, Option<usize>), Error>
[src]

Process one input, adding to the respective corpuses if needed and firing the right events