Struct libafl::feedbacks::map::MapFeedback [−][src]
pub struct MapFeedback<FT, I, O, R, S, T> where
T: Integer + Default + Copy + 'static + Serialize + DeserializeOwned,
R: Reducer<T>,
O: MapObserver<T>,
S: HasFeedbackStates<FT>,
FT: FeedbackStatesTuple, { /* fields omitted */ }
Expand description
The most common AFL-like feedback type
Implementations
impl<FT, I, O, R, S, T> MapFeedback<FT, I, O, R, S, T> where
T: Integer + Default + Copy + 'static + Serialize + DeserializeOwned,
R: Reducer<T>,
O: MapObserver<T>,
S: HasFeedbackStates<FT>,
FT: FeedbackStatesTuple,
impl<FT, I, O, R, S, T> MapFeedback<FT, I, O, R, S, T> where
T: Integer + Default + Copy + 'static + Serialize + DeserializeOwned,
R: Reducer<T>,
O: MapObserver<T>,
S: HasFeedbackStates<FT>,
FT: FeedbackStatesTuple,
Create new MapFeedback
pub fn new_tracking(
feedback_state: &MapFeedbackState<T>,
map_observer: &O,
track_indexes: bool,
track_novelties: bool
) -> Self
pub fn new_tracking(
feedback_state: &MapFeedbackState<T>,
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
Create new MapFeedback
Trait Implementations
impl<FT: Clone, I: Clone, O: Clone, R: Clone, S: Clone, T: Clone> Clone for MapFeedback<FT, I, O, R, S, T> where
T: Integer + Default + Copy + 'static + Serialize + DeserializeOwned,
R: Reducer<T>,
O: MapObserver<T>,
S: HasFeedbackStates<FT>,
FT: FeedbackStatesTuple,
impl<FT: Clone, I: Clone, O: Clone, R: Clone, S: Clone, T: Clone> Clone for MapFeedback<FT, I, O, R, S, T> where
T: Integer + Default + Copy + 'static + Serialize + DeserializeOwned,
R: Reducer<T>,
O: MapObserver<T>,
S: HasFeedbackStates<FT>,
FT: FeedbackStatesTuple,
impl<FT: Debug, I: Debug, O: Debug, R: Debug, S: Debug, T: Debug> Debug for MapFeedback<FT, I, O, R, S, T> where
T: Integer + Default + Copy + 'static + Serialize + DeserializeOwned,
R: Reducer<T>,
O: MapObserver<T>,
S: HasFeedbackStates<FT>,
FT: FeedbackStatesTuple,
impl<FT: Debug, I: Debug, O: Debug, R: Debug, S: Debug, T: Debug> Debug for MapFeedback<FT, I, O, R, S, T> where
T: Integer + Default + Copy + 'static + Serialize + DeserializeOwned,
R: Reducer<T>,
O: MapObserver<T>,
S: HasFeedbackStates<FT>,
FT: FeedbackStatesTuple,
impl<'de, FT, I, O, R, S, T> Deserialize<'de> for MapFeedback<FT, I, O, R, S, T> where
T: Integer + Default + Copy + 'static + Serialize + DeserializeOwned,
R: Reducer<T>,
O: MapObserver<T>,
S: HasFeedbackStates<FT>,
FT: FeedbackStatesTuple,
T: DeserializeOwned,
impl<'de, FT, I, O, R, S, T> Deserialize<'de> for MapFeedback<FT, I, O, R, S, T> where
T: Integer + Default + Copy + 'static + Serialize + DeserializeOwned,
R: Reducer<T>,
O: MapObserver<T>,
S: HasFeedbackStates<FT>,
FT: FeedbackStatesTuple,
T: DeserializeOwned,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl<I, FT, O, R, S, T> Feedback<I, S> for MapFeedback<FT, I, O, R, S, T> where
T: Integer + Default + Copy + 'static + Serialize + DeserializeOwned,
R: Reducer<T>,
O: MapObserver<T>,
I: Input,
S: HasFeedbackStates<FT>,
FT: FeedbackStatesTuple,
impl<I, FT, O, R, S, T> Feedback<I, S> for MapFeedback<FT, I, O, R, S, T> where
T: Integer + Default + Copy + 'static + Serialize + DeserializeOwned,
R: Reducer<T>,
O: MapObserver<T>,
I: Input,
S: HasFeedbackStates<FT>,
FT: FeedbackStatesTuple,
Discard the stored metadata in case that the testcase is not added to the corpus
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, S>,
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, S>,
OT: ObserversTuple<I, S>,
is_interesting
return if an input is worth the addition to the corpus
impl<FT, I, O, R, S, T> Named for MapFeedback<FT, I, O, R, S, T> where
T: Integer + Default + Copy + 'static + Serialize + DeserializeOwned,
R: Reducer<T>,
O: MapObserver<T>,
S: HasFeedbackStates<FT>,
FT: FeedbackStatesTuple,
impl<FT, I, O, R, S, T> Named for MapFeedback<FT, I, O, R, S, T> where
T: Integer + Default + Copy + 'static + Serialize + DeserializeOwned,
R: Reducer<T>,
O: MapObserver<T>,
S: HasFeedbackStates<FT>,
FT: FeedbackStatesTuple,
impl<FT, I, O, R, S, T> Serialize for MapFeedback<FT, I, O, R, S, T> where
T: Integer + Default + Copy + 'static + Serialize + DeserializeOwned,
R: Reducer<T>,
O: MapObserver<T>,
S: HasFeedbackStates<FT>,
FT: FeedbackStatesTuple,
T: DeserializeOwned,
impl<FT, I, O, R, S, T> Serialize for MapFeedback<FT, I, O, R, S, T> where
T: Integer + Default + Copy + 'static + Serialize + DeserializeOwned,
R: Reducer<T>,
O: MapObserver<T>,
S: HasFeedbackStates<FT>,
FT: FeedbackStatesTuple,
T: DeserializeOwned,
Auto Trait Implementations
impl<FT, I, O, R, S, T> RefUnwindSafe for MapFeedback<FT, I, O, R, S, T> where
FT: RefUnwindSafe,
I: RefUnwindSafe,
O: RefUnwindSafe,
R: RefUnwindSafe,
S: RefUnwindSafe,
T: RefUnwindSafe,
impl<FT, I, O, R, S, T> Send for MapFeedback<FT, I, O, R, S, T> where
FT: Send,
I: Send,
O: Send,
R: Send,
S: Send,
T: Send,
impl<FT, I, O, R, S, T> Sync for MapFeedback<FT, I, O, R, S, T> where
FT: Sync,
I: Sync,
O: Sync,
R: Sync,
S: Sync,
T: Sync,
impl<FT, I, O, R, S, T> Unpin for MapFeedback<FT, I, O, R, S, T> where
FT: Unpin,
I: Unpin,
O: Unpin,
R: Unpin,
S: Unpin,
T: Unpin,
impl<FT, I, O, R, S, T> UnwindSafe for MapFeedback<FT, I, O, R, S, T> where
FT: UnwindSafe,
I: UnwindSafe,
O: UnwindSafe,
R: UnwindSafe,
S: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
type PreprendResult = Tail
type PreprendResult = Tail
The Resulting TupleList
, of an Prepend::prepend()
call,
including the prepended entry. Read more
type Output = T
type Output = T
Should always be Self