pub trait Executor<EM, I, S, Z> {
// Required method
fn run_target(
&mut self,
fuzzer: &mut Z,
state: &mut S,
mgr: &mut EM,
input: &I,
) -> Result<ExitKind, Error>;
}Expand description
An executor takes the given inputs, and runs the harness/target.
Required Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
impl<A, B, DOT, EM, I, S, Z> Executor<EM, I, S, Z> for DiffExecutor<A, B, DOT, I, A::Observers, B::Observers, S>where
A: Executor<EM, I, S, Z> + HasObservers,
B: Executor<EM, I, S, Z> + HasObservers,
<A as HasObservers>::Observers: ObserversTuple<I, S>,
<B as HasObservers>::Observers: ObserversTuple<I, S>,
DOT: DifferentialObserversTuple<A::Observers, B::Observers, I, S> + MatchName,
impl<A, B, EM, I, S, Z> Executor<EM, I, S, Z> for CombinedExecutor<A, B>
impl<E, EM, I, OT, S, Z> Executor<EM, I, S, Z> for WithObservers<E, I, OT, S>where
E: Executor<EM, I, S, Z>,
impl<E, EM, I, S, SOT, Z> Executor<EM, I, S, Z> for ShadowExecutor<E, I, S, SOT>
impl<E, ET, C, O, EM, I, S, Z, OT> Executor<EM, I, S, Z> for SANDExecutor<E, ET, C, O>where
ET: ExecutorsTuple<EM, I, S, Z>,
E: Executor<EM, I, S, Z> + HasObservers<Observers = OT>,
OT: MatchName,
O: MapObserver<Entry = u8> + for<'it> AsIter<'it, Item = u8>,
C: AsRef<O> + Named,
S: HasNamedMetadata,
impl<EM, H, HB, HT, I, OT, S, Z, ES> Executor<EM, I, S, Z> for StatefulGenericInProcessExecutor<EM, ES, H, HB, HT, I, OT, S, Z>where
H: FnMut(&mut ES, &mut S, &I) -> ExitKind + Sized,
HB: BorrowMut<H>,
HT: ExecutorHooksTuple<I, S>,
OT: ObserversTuple<I, S>,
S: HasExecutions,
impl<EM, H, HB, HT, I, OT, S, Z> Executor<EM, I, S, Z> for GenericInProcessExecutor<EM, H, HB, HT, I, OT, S, Z>where
S: HasExecutions,
OT: ObserversTuple<I, S>,
HT: ExecutorHooksTuple<I, S>,
HB: BorrowMut<H>,
H: FnMut(&I) -> ExitKind + Sized,
impl<EM, H, HT, I, OT, S, SP, Z, ES> Executor<EM, I, S, Z> for StatefulGenericInProcessForkExecutor<EM, ES, H, HT, I, OT, S, SP, Z>where
H: FnMut(&mut ES, &I) -> ExitKind + Sized,
HT: ExecutorHooksTuple<I, S>,
S: HasExecutions,
SP: ShMemProvider,
OT: ObserversTuple<I, S>,
impl<EM, H, HT, I, OT, S, SP, Z> Executor<EM, I, S, Z> for GenericInProcessForkExecutor<EM, H, HT, I, OT, S, SP, Z>where
H: FnMut(&I) -> ExitKind + Sized,
HT: ExecutorHooksTuple<I, S>,
OT: ObserversTuple<I, S>,
S: HasExecutions,
SP: ShMemProvider,
impl<EM, HT, I, OT, S, T, Z> Executor<EM, I, S, Z> for CommandExecutor<Child, HT, I, OT, S, T>where
S: HasExecutions,
T: CommandConfigurator<Child> + HasTimeout + Debug,
OT: MatchName + ObserversTuple<I, S>,
Z: ToTargetBytesConverter<I, S>,
impl<EM, HT, I, OT, S, T, Z> Executor<EM, I, S, Z> for CommandExecutor<Pid, HT, I, OT, S, T>where
HT: ExecutorHooksTuple<I, S>,
OT: MatchName + ObserversTuple<I, S>,
S: HasExecutions,
T: CommandConfigurator<Pid> + Debug,
Z: ToTargetBytesConverter<I, S>,
Available on Linux only.