From 799c634fef047d3e98355fe1ad17c5226c901a57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20G=C3=B6gge?= Date: Fri, 9 Aug 2024 11:24:46 +0100 Subject: [PATCH] Implement FeedbackFactory for {Const,Not}Feedback (#2478) * libafl: Impl FeedbackFactory for NotFeedback * libafl: Impl FeedbackFactory for ConstFeedback --- libafl/src/feedbacks/mod.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/libafl/src/feedbacks/mod.rs b/libafl/src/feedbacks/mod.rs index 3cd3457835..932b689e9f 100644 --- a/libafl/src/feedbacks/mod.rs +++ b/libafl/src/feedbacks/mod.rs @@ -818,6 +818,16 @@ where } } +impl FeedbackFactory, T> for NotFeedback +where + A: Feedback + FeedbackFactory, + S: State, +{ + fn create_feedback(&self, ctx: &T) -> NotFeedback { + NotFeedback::new(self.first.create_feedback(ctx)) + } +} + impl NotFeedback where A: Feedback, @@ -1279,6 +1289,12 @@ impl From for bool { } } +impl FeedbackFactory for ConstFeedback { + fn create_feedback(&self, _ctx: &T) -> ConstFeedback { + *self + } +} + #[cfg(feature = "track_hit_feedbacks")] /// Error if [`Feedback::last_result`] is called before the `Feedback` is actually run. pub(crate) fn premature_last_result_err() -> Error {