Trait Observer

Source
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§

Source

fn flush(&mut self) -> Result<(), Error>

The testcase finished execution, calculate any changes. Reserved for future use.

Source

fn pre_exec(&mut self, _state: &mut S, _input: &I) -> Result<(), Error>

Called right before execution starts.

Source

fn post_exec( &mut self, _state: &mut S, _input: &I, _exit_kind: &ExitKind, ) -> Result<(), Error>

Called right after execution finishes.

Source

fn pre_exec_child(&mut self, _state: &mut S, _input: &I) -> Result<(), Error>

Called right before execution starts in the child process, if any.

Source

fn post_exec_child( &mut self, _state: &mut S, _input: &I, _exit_kind: &ExitKind, ) -> Result<(), Error>

Called right after execution finishes in the child process, if any.

Implementors§

Source§

impl<CM, I, S> Observer<I, S> for StdCmpObserver<'_, CM>
where CM: Serialize + CmpMap + HasLen, S: HasMetadata,

Source§

impl<I, S> Observer<I, S> for ConcolicObserver<'_>

Source§

impl<I, S> Observer<I, S> for AsanBacktraceObserver

Source§

impl<I, S> Observer<I, S> for BacktraceObserver<'_>

Source§

impl<I, S> Observer<I, S> for TimeObserver

Source§

impl<I, S, M> Observer<I, S> for HitcountsIterableMapObserver<M>
where M: MapObserver<Entry = u8> + Observer<I, S> + for<'it> AsIterMut<'it, Item = u8>,

Source§

impl<I, S, M> Observer<I, S> for HitcountsMapObserver<M>
where M: MapObserver<Entry = u8> + Observer<I, S> + for<'a> AsSliceMut<'a, Entry = u8>,

Source§

impl<I, S, T> Observer<I, S> for ListObserver<T>

Source§

impl<I, S, T> Observer<I, S> for MultiMapObserver<'_, T, false>
where Self: MapObserver,

Source§

impl<I, S, T> Observer<I, S> for MultiMapObserver<'_, T, true>

Source§

impl<I, S, T> Observer<I, S> for OwnedMapObserver<T>
where Self: MapObserver,

Source§

impl<I, S, T> Observer<I, S> for StdMapObserver<'_, T, false>
where Self: MapObserver,

Source§

impl<I, S, T> Observer<I, S> for StdMapObserver<'_, T, true>

Source§

impl<I, S, T> Observer<I, S> for VariableMapObserver<'_, T>
where Self: MapObserver,

Source§

impl<I, S, T> Observer<I, S> for OutputObserver<T>
where T: 'static,

Source§

impl<I, S, T> Observer<I, S> for RefCellValueObserver<'_, T>

This does not reset the value inside the observer.

Source§

impl<I, S, T> Observer<I, S> for ValueObserver<'_, T>

This does not reset the value inside the observer.

Source§

impl<I, S, T, const N: usize> Observer<I, S> for ConstMapObserver<'_, T, N>
where Self: MapObserver,

Source§

impl<S, I, T, const ITH: bool, const NTH: bool> Observer<I, S> for ExplicitTracking<T, ITH, NTH>
where T: Observer<I, S>,