pub struct MapFeedback<I, N, O, R, S, T> where
T: PartialEq + Default + Copy + 'static + Serialize + DeserializeOwned + Debug,
R: Reducer<T>,
O: MapObserver<Entry = T>,
for<'it> O: AsIter<'it, Item = T>,
N: IsNovel<T>,
S: HasNamedMetadata, { /* private fields */ }
Expand description
The most common AFL-like feedback type
Implementations
sourceimpl<I, N, O, R, S, T> MapFeedback<I, N, O, R, S, T> where
T: PartialEq + Default + Copy + 'static + Serialize + DeserializeOwned + Debug,
R: Reducer<T>,
O: MapObserver<Entry = T>,
for<'it> O: AsIter<'it, Item = T>,
N: IsNovel<T>,
I: Input,
S: HasNamedMetadata + HasClientPerfMonitor + Debug,
impl<I, N, O, R, S, T> MapFeedback<I, N, O, R, S, T> where
T: PartialEq + Default + Copy + 'static + Serialize + DeserializeOwned + Debug,
R: Reducer<T>,
O: MapObserver<Entry = T>,
for<'it> O: AsIter<'it, Item = T>,
N: IsNovel<T>,
I: Input,
S: HasNamedMetadata + HasClientPerfMonitor + Debug,
sourcepub fn new_tracking(
map_observer: &O,
track_indexes: bool,
track_novelties: bool
) -> Self
pub fn new_tracking(
map_observer: &O,
track_indexes: bool,
track_novelties: bool
) -> Self
Create new MapFeedback
specifying if it must track indexes of used entries and/or novelties
sourcepub fn with_names(name: &'static str, observer_name: &'static str) -> Self
pub fn with_names(name: &'static str, observer_name: &'static str) -> Self
Create new MapFeedback
Trait Implementations
sourceimpl<I: Clone, N: Clone, O: Clone, R: Clone, S: Clone, T: Clone> Clone for MapFeedback<I, N, O, R, S, T> where
T: PartialEq + Default + Copy + 'static + Serialize + DeserializeOwned + Debug,
R: Reducer<T>,
O: MapObserver<Entry = T>,
for<'it> O: AsIter<'it, Item = T>,
N: IsNovel<T>,
S: HasNamedMetadata,
impl<I: Clone, N: Clone, O: Clone, R: Clone, S: Clone, T: Clone> Clone for MapFeedback<I, N, O, R, S, T> where
T: PartialEq + Default + Copy + 'static + Serialize + DeserializeOwned + Debug,
R: Reducer<T>,
O: MapObserver<Entry = T>,
for<'it> O: AsIter<'it, Item = T>,
N: IsNovel<T>,
S: HasNamedMetadata,
sourcefn clone(&self) -> MapFeedback<I, N, O, R, S, T>
fn clone(&self) -> MapFeedback<I, N, O, R, S, T>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl<I: Debug, N: Debug, O: Debug, R: Debug, S: Debug, T: Debug> Debug for MapFeedback<I, N, O, R, S, T> where
T: PartialEq + Default + Copy + 'static + Serialize + DeserializeOwned + Debug,
R: Reducer<T>,
O: MapObserver<Entry = T>,
for<'it> O: AsIter<'it, Item = T>,
N: IsNovel<T>,
S: HasNamedMetadata,
impl<I: Debug, N: Debug, O: Debug, R: Debug, S: Debug, T: Debug> Debug for MapFeedback<I, N, O, R, S, T> where
T: PartialEq + Default + Copy + 'static + Serialize + DeserializeOwned + Debug,
R: Reducer<T>,
O: MapObserver<Entry = T>,
for<'it> O: AsIter<'it, Item = T>,
N: IsNovel<T>,
S: HasNamedMetadata,
sourceimpl<I, O, S> Feedback<I, S> for MapFeedback<I, DifferentIsNovel, O, MaxReducer, S, u8> where
O: MapObserver<Entry = u8> + AsSlice<u8>,
for<'it> O: AsIter<'it, Item = u8>,
I: Input,
S: HasNamedMetadata + HasClientPerfMonitor + Debug,
impl<I, O, S> Feedback<I, S> for MapFeedback<I, DifferentIsNovel, O, MaxReducer, S, u8> where
O: MapObserver<Entry = u8> + AsSlice<u8>,
for<'it> O: AsIter<'it, Item = u8>,
I: Input,
S: HasNamedMetadata + HasClientPerfMonitor + Debug,
Specialize for the common coverage map size, maximization of u8s
sourcefn is_interesting<EM, OT>(
&mut self,
state: &mut S,
manager: &mut EM,
_input: &I,
observers: &OT,
_exit_kind: &ExitKind
) -> Result<bool, Error> where
EM: EventFirer<I>,
OT: ObserversTuple<I, S>,
fn is_interesting<EM, OT>(
&mut self,
state: &mut S,
manager: &mut EM,
_input: &I,
observers: &OT,
_exit_kind: &ExitKind
) -> Result<bool, Error> where
EM: EventFirer<I>,
OT: ObserversTuple<I, S>,
is_interesting
return if an input is worth the addition to the corpus
sourcefn init_state(&mut self, _state: &mut S) -> Result<(), Error>
fn init_state(&mut self, _state: &mut S) -> Result<(), Error>
Initializes the feedback state.
This method is called after that the State
is created. Read more
sourceimpl<I, N, O, R, S, T> Feedback<I, S> for MapFeedback<I, N, O, R, S, T> where
T: PartialEq + Default + Copy + 'static + Serialize + DeserializeOwned + Debug,
R: Reducer<T>,
O: MapObserver<Entry = T>,
for<'it> O: AsIter<'it, Item = T>,
N: IsNovel<T>,
I: Input,
S: HasNamedMetadata + HasClientPerfMonitor + Debug,
impl<I, N, O, R, S, T> Feedback<I, S> for MapFeedback<I, N, O, R, S, T> where
T: PartialEq + Default + Copy + 'static + Serialize + DeserializeOwned + Debug,
R: Reducer<T>,
O: MapObserver<Entry = T>,
for<'it> O: AsIter<'it, Item = T>,
N: IsNovel<T>,
I: Input,
S: HasNamedMetadata + HasClientPerfMonitor + Debug,
sourcefn discard_metadata(&mut self, _state: &mut S, _input: &I) -> Result<(), Error>
fn discard_metadata(&mut self, _state: &mut S, _input: &I) -> Result<(), Error>
Discard the stored metadata in case that the testcase is not added to the corpus
sourcefn init_state(&mut self, state: &mut S) -> Result<(), Error>
fn init_state(&mut self, state: &mut S) -> Result<(), Error>
Initializes the feedback state.
This method is called after that the State
is created. Read more
sourcedefault fn is_interesting<EM, OT>(
&mut self,
state: &mut S,
manager: &mut EM,
input: &I,
observers: &OT,
exit_kind: &ExitKind
) -> Result<bool, Error> where
EM: EventFirer<I>,
OT: ObserversTuple<I, S>,
default fn is_interesting<EM, OT>(
&mut self,
state: &mut S,
manager: &mut EM,
input: &I,
observers: &OT,
exit_kind: &ExitKind
) -> Result<bool, Error> where
EM: EventFirer<I>,
OT: ObserversTuple<I, S>,
is_interesting
return if an input is worth the addition to the corpus
sourceimpl<I, N, O, R, S, T> HasObserverName for MapFeedback<I, N, O, R, S, T> where
T: PartialEq + Default + Copy + 'static + Serialize + DeserializeOwned + Debug,
R: Reducer<T>,
N: IsNovel<T>,
O: MapObserver<Entry = T>,
for<'it> O: AsIter<'it, Item = T>,
S: HasNamedMetadata,
impl<I, N, O, R, S, T> HasObserverName for MapFeedback<I, N, O, R, S, T> where
T: PartialEq + Default + Copy + 'static + Serialize + DeserializeOwned + Debug,
R: Reducer<T>,
N: IsNovel<T>,
O: MapObserver<Entry = T>,
for<'it> O: AsIter<'it, Item = T>,
S: HasNamedMetadata,
sourcefn observer_name(&self) -> &str
fn observer_name(&self) -> &str
The name associated with the observer
sourceimpl<I, N, O, R, S, T> Named for MapFeedback<I, N, O, R, S, T> where
T: PartialEq + Default + Copy + 'static + Serialize + DeserializeOwned + Debug,
R: Reducer<T>,
N: IsNovel<T>,
O: MapObserver<Entry = T>,
for<'it> O: AsIter<'it, Item = T>,
S: HasNamedMetadata,
impl<I, N, O, R, S, T> Named for MapFeedback<I, N, O, R, S, T> where
T: PartialEq + Default + Copy + 'static + Serialize + DeserializeOwned + Debug,
R: Reducer<T>,
N: IsNovel<T>,
O: MapObserver<Entry = T>,
for<'it> O: AsIter<'it, Item = T>,
S: HasNamedMetadata,
Auto Trait Implementations
impl<I, N, O, R, S, T> RefUnwindSafe for MapFeedback<I, N, O, R, S, T> where
I: RefUnwindSafe,
N: RefUnwindSafe,
O: RefUnwindSafe,
R: RefUnwindSafe,
S: RefUnwindSafe,
T: RefUnwindSafe,
impl<I, N, O, R, S, T> Send for MapFeedback<I, N, O, R, S, T> where
I: Send,
N: Send,
O: Send,
R: Send,
S: Send,
T: Send,
impl<I, N, O, R, S, T> Sync for MapFeedback<I, N, O, R, S, T> where
I: Sync,
N: Sync,
O: Sync,
R: Sync,
S: Sync,
T: Sync,
impl<I, N, O, R, S, T> Unpin for MapFeedback<I, N, O, R, S, T> where
I: Unpin,
N: Unpin,
O: Unpin,
R: Unpin,
S: Unpin,
T: Unpin,
impl<I, N, O, R, S, T> UnwindSafe for MapFeedback<I, N, O, R, S, T> where
I: UnwindSafe,
N: UnwindSafe,
O: UnwindSafe,
R: UnwindSafe,
S: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Tail, T> Prepend<T> for Tail
impl<Tail, T> Prepend<T> for Tail
type PreprendResult = Tail
type PreprendResult = Tail
The Resulting TupleList
, of an Prepend::prepend()
call,
including the prepended entry. Read more
sourcefn prepend(self, value: T) -> (T, <Tail as Prepend<T>>::PreprendResult)
fn prepend(self, value: T) -> (T, <Tail as Prepend<T>>::PreprendResult)
Prepend a value to this tuple, returning a new tuple with prepended value.