pub trait Observer<I, S>: Named {
// Provided methods
fn flush(&mut self) -> Result<(), Error> { ... }
fn pre_exec(&mut self, _state: &mut S, _input: &I) -> Result<(), Error> { ... }
fn post_exec(
&mut self,
_state: &mut S,
_input: &I,
_exit_kind: &ExitKind,
) -> Result<(), Error> { ... }
fn pre_exec_child(
&mut self,
_state: &mut S,
_input: &I,
) -> Result<(), Error> { ... }
fn post_exec_child(
&mut self,
_state: &mut S,
_input: &I,
_exit_kind: &ExitKind,
) -> Result<(), Error> { ... }
}
Expand description
Observers observe different information about the target. They can then be used by various sorts of feedback.
Provided Methods§
Sourcefn flush(&mut self) -> Result<(), Error>
fn flush(&mut self) -> Result<(), Error>
The testcase finished execution, calculate any changes. Reserved for future use.
Sourcefn pre_exec(&mut self, _state: &mut S, _input: &I) -> Result<(), Error>
fn pre_exec(&mut self, _state: &mut S, _input: &I) -> Result<(), Error>
Called right before execution starts.
Sourcefn post_exec(
&mut self,
_state: &mut S,
_input: &I,
_exit_kind: &ExitKind,
) -> Result<(), Error>
fn post_exec( &mut self, _state: &mut S, _input: &I, _exit_kind: &ExitKind, ) -> Result<(), Error>
Called right after execution finishes.
Implementors§
impl<CM, I, S> Observer<I, S> for StdCmpObserver<'_, CM>
impl<I, S> Observer<I, S> for ConcolicObserver<'_>
impl<I, S> Observer<I, S> for AsanBacktraceObserver
impl<I, S> Observer<I, S> for BacktraceObserver<'_>
impl<I, S> Observer<I, S> for TimeObserver
impl<I, S, M> Observer<I, S> for HitcountsIterableMapObserver<M>
impl<I, S, M> Observer<I, S> for HitcountsMapObserver<M>
impl<I, S, T> Observer<I, S> for ListObserver<T>
impl<I, S, T> Observer<I, S> for MultiMapObserver<'_, T, false>where
Self: MapObserver,
impl<I, S, T> Observer<I, S> for MultiMapObserver<'_, T, true>
impl<I, S, T> Observer<I, S> for OwnedMapObserver<T>where
Self: MapObserver,
impl<I, S, T> Observer<I, S> for StdMapObserver<'_, T, false>where
Self: MapObserver,
impl<I, S, T> Observer<I, S> for StdMapObserver<'_, T, true>
impl<I, S, T> Observer<I, S> for VariableMapObserver<'_, T>where
Self: MapObserver,
impl<I, S, T> Observer<I, S> for OutputObserver<T>where
T: 'static,
impl<I, S, T> Observer<I, S> for RefCellValueObserver<'_, T>
This does not reset the value inside the observer.
impl<I, S, T> Observer<I, S> for ValueObserver<'_, T>
This does not reset the value inside the observer.