Struct puffin::fuzzer::feedback::MinimizingFeedback
source · pub struct MinimizingFeedback<SC, PT>where
SC: HasCorpus + HasRand + HasMaxSize + UsesInput<Input = Trace<PT>> + State,
PT: ProtocolTypes + 'static,{
enabled: bool,
pub(crate) phantom: PhantomData<SC>,
}
Expand description
Custom feedback for minimizing traces after execution and prior to adding them to the corpus.
Fields§
§enabled: bool
§phantom: PhantomData<SC>
Implementations§
source§impl<SC, PT> MinimizingFeedback<SC, PT>where
SC: HasCorpus + HasRand + HasMaxSize + UsesInput<Input = Trace<PT>> + State,
PT: ProtocolTypes + 'static,
impl<SC, PT> MinimizingFeedback<SC, PT>where
SC: HasCorpus + HasRand + HasMaxSize + UsesInput<Input = Trace<PT>> + State,
PT: ProtocolTypes + 'static,
Trait Implementations§
source§impl<SC, PT> Clone for MinimizingFeedback<SC, PT>where
SC: HasCorpus + HasRand + HasMaxSize + UsesInput<Input = Trace<PT>> + State + Clone,
PT: ProtocolTypes + 'static + Clone,
impl<SC, PT> Clone for MinimizingFeedback<SC, PT>where
SC: HasCorpus + HasRand + HasMaxSize + UsesInput<Input = Trace<PT>> + State + Clone,
PT: ProtocolTypes + 'static + Clone,
source§fn clone(&self) -> MinimizingFeedback<SC, PT>
fn clone(&self) -> MinimizingFeedback<SC, PT>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<SC, PT> Debug for MinimizingFeedback<SC, PT>where
SC: HasCorpus + HasRand + HasMaxSize + UsesInput<Input = Trace<PT>> + State + Debug,
PT: ProtocolTypes + 'static + Debug,
impl<SC, PT> Debug for MinimizingFeedback<SC, PT>where
SC: HasCorpus + HasRand + HasMaxSize + UsesInput<Input = Trace<PT>> + State + Debug,
PT: ProtocolTypes + 'static + Debug,
source§impl<'de, SC, PT> Deserialize<'de> for MinimizingFeedback<SC, PT>where
SC: HasCorpus + HasRand + HasMaxSize + UsesInput<Input = Trace<PT>> + State,
PT: ProtocolTypes + 'static,
impl<'de, SC, PT> Deserialize<'de> for MinimizingFeedback<SC, PT>where
SC: HasCorpus + HasRand + HasMaxSize + UsesInput<Input = Trace<PT>> + State,
PT: ProtocolTypes + 'static,
source§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
source§impl<SC, PT> Feedback<SC> for MinimizingFeedback<SC, PT>where
SC: HasCorpus + HasRand + HasMaxSize + UsesInput<Input = Trace<PT>> + State,
PT: ProtocolTypes + 'static,
impl<SC, PT> Feedback<SC> for MinimizingFeedback<SC, PT>where
SC: HasCorpus + HasRand + HasMaxSize + UsesInput<Input = Trace<PT>> + State,
PT: ProtocolTypes + 'static,
source§fn append_metadata<OT>(
&mut self,
_state: &mut SC,
_observers: &OT,
testcase: &mut Testcase<Trace<PT>>,
) -> Result<(), Error>where
OT: ObserversTuple<SC>,
fn append_metadata<OT>(
&mut self,
_state: &mut SC,
_observers: &OT,
testcase: &mut Testcase<Trace<PT>>,
) -> Result<(), Error>where
OT: ObserversTuple<SC>,
Append to the testcase the generated metadata in case of a new corpus item
source§fn is_interesting<EM, OT>(
&mut self,
_: &mut SC,
_: &mut EM,
_: &Trace<PT>,
_: &OT,
_: &ExitKind,
) -> Result<bool, Error>where
EM: EventFirer<State = SC>,
OT: ObserversTuple<SC>,
fn is_interesting<EM, OT>(
&mut self,
_: &mut SC,
_: &mut EM,
_: &Trace<PT>,
_: &OT,
_: &ExitKind,
) -> Result<bool, Error>where
EM: EventFirer<State = SC>,
OT: ObserversTuple<SC>,
is_interesting
return if an input is worth the addition to the corpussource§fn is_interesting_introspection<EM, OT>(
&mut self,
_: &mut SC,
_: &mut EM,
_: &SC::Input,
_: &OT,
_: &ExitKind,
) -> Result<bool, Error>where
EM: EventFirer<State = SC>,
OT: ObserversTuple<SC>,
fn is_interesting_introspection<EM, OT>(
&mut self,
_: &mut SC,
_: &mut EM,
_: &SC::Input,
_: &OT,
_: &ExitKind,
) -> Result<bool, Error>where
EM: EventFirer<State = SC>,
OT: ObserversTuple<SC>,
Returns if the result of a run is interesting and the value input should be stored in a corpus.
It also keeps track of introspection stats.
source§fn discard_metadata(
&mut self,
_state: &mut SC,
_input: &SC::Input,
) -> Result<(), Error>
fn discard_metadata( &mut self, _state: &mut SC, _input: &SC::Input, ) -> Result<(), Error>
Discard the stored metadata in case that the testcase is not added to the corpus
§fn 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.source§impl<SC, PT> Named for MinimizingFeedback<SC, PT>where
SC: HasCorpus + HasRand + HasMaxSize + UsesInput<Input = Trace<PT>> + State,
PT: ProtocolTypes + 'static,
impl<SC, PT> Named for MinimizingFeedback<SC, PT>where
SC: HasCorpus + HasRand + HasMaxSize + UsesInput<Input = Trace<PT>> + State,
PT: ProtocolTypes + 'static,
source§impl<SC, PT> Serialize for MinimizingFeedback<SC, PT>where
SC: HasCorpus + HasRand + HasMaxSize + UsesInput<Input = Trace<PT>> + State,
PT: ProtocolTypes + 'static,
impl<SC, PT> Serialize for MinimizingFeedback<SC, PT>where
SC: HasCorpus + HasRand + HasMaxSize + UsesInput<Input = Trace<PT>> + State,
PT: ProtocolTypes + 'static,
Auto Trait Implementations§
impl<SC, PT> Freeze for MinimizingFeedback<SC, PT>
impl<SC, PT> RefUnwindSafe for MinimizingFeedback<SC, PT>where
SC: RefUnwindSafe,
impl<SC, PT> Send for MinimizingFeedback<SC, PT>where
SC: Send,
impl<SC, PT> Sync for MinimizingFeedback<SC, PT>where
SC: Sync,
impl<SC, PT> Unpin for MinimizingFeedback<SC, PT>where
SC: Unpin,
impl<SC, PT> UnwindSafe for MinimizingFeedback<SC, PT>where
SC: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneAny for T
impl<T> CloneAny for T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§impl<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.