Removed new_ from constructors that don't need it (API consistency) (#1159)

* Removed new_ from constructors that don't need it (API consistency)

* un-change python bindings
This commit is contained in:
Dominik Maier 2023-03-17 17:02:21 +01:00 committed by GitHub
parent 104c170ade
commit bbe4e85768
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
36 changed files with 55 additions and 52 deletions

View File

@ -85,7 +85,7 @@ pub fn main() {
let observer = unsafe { StdMapObserver::new("signals", &mut SIGNALS) }; let observer = unsafe { StdMapObserver::new("signals", &mut SIGNALS) };
// Feedback to rate the interestingness of an input // Feedback to rate the interestingness of an input
let mut feedback = MaxMapFeedback::new_tracking(&observer, false, true); let mut feedback = MaxMapFeedback::tracking(&observer, false, true);
// A feedback to choose if an input is a solution or not // A feedback to choose if an input is a solution or not
let mut objective = CrashFeedback::new(); let mut objective = CrashFeedback::new();

View File

@ -35,7 +35,7 @@ pub fn main() -> Result<(), Error> {
let observer = let observer =
unsafe { StdMapObserver::from_mut_ptr("signals", SIGNALS.as_mut_ptr(), SIGNALS.len()) }; unsafe { StdMapObserver::from_mut_ptr("signals", SIGNALS.as_mut_ptr(), SIGNALS.len()) };
let factory = MapEqualityFactory::new_from_observer(&observer); let factory = MapEqualityFactory::with_observer(&observer);
// Feedback to rate the interestingness of an input // Feedback to rate the interestingness of an input
let mut feedback = MaxMapFeedback::new(&observer); let mut feedback = MaxMapFeedback::new(&observer);

View File

@ -54,7 +54,7 @@ pub fn main() {
// Feedback to rate the interestingness of an input // Feedback to rate the interestingness of an input
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = MaxMapFeedback::new_tracking(&edges_observer, true, false); let mut feedback = MaxMapFeedback::tracking(&edges_observer, true, false);
// A feedback to choose if an input is a solution or not // A feedback to choose if an input is a solution or not
// We want to do the same crash deduplication that AFL does // We want to do the same crash deduplication that AFL does

View File

@ -113,7 +113,7 @@ pub fn main() {
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );

View File

@ -113,7 +113,7 @@ pub fn main() {
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );

View File

@ -121,7 +121,7 @@ unsafe fn fuzz(options: &FuzzerOptions) -> Result<(), Error> {
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );
@ -237,7 +237,7 @@ unsafe fn fuzz(options: &FuzzerOptions) -> Result<(), Error> {
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );
@ -367,7 +367,7 @@ unsafe fn fuzz(options: &FuzzerOptions) -> Result<(), Error> {
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );

View File

@ -118,7 +118,7 @@ unsafe fn fuzz(options: &FuzzerOptions) -> Result<(), Error> {
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );
@ -235,7 +235,7 @@ unsafe fn fuzz(options: &FuzzerOptions) -> Result<(), Error> {
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );
@ -365,7 +365,7 @@ unsafe fn fuzz(options: &FuzzerOptions) -> Result<(), Error> {
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );

View File

@ -249,7 +249,7 @@ fn fuzz(
let cmplog_observer = CmpLogObserver::new("cmplog", true); let cmplog_observer = CmpLogObserver::new("cmplog", true);
let map_feedback = MaxMapFeedback::new_tracking(&edges_observer, true, false); let map_feedback = MaxMapFeedback::tracking(&edges_observer, true, false);
let calibration = CalibrationStage::new(&map_feedback); let calibration = CalibrationStage::new(&map_feedback);

View File

@ -246,7 +246,7 @@ fn fuzz(
// Create an observation channel using cmplog map // Create an observation channel using cmplog map
let cmplog_observer = unsafe { CmpLogObserver::with_map_ptr("cmplog", cmplog_map_ptr, true) }; let cmplog_observer = unsafe { CmpLogObserver::with_map_ptr("cmplog", cmplog_map_ptr, true) };
let map_feedback = MaxMapFeedback::new_tracking(&edges_observer, true, false); let map_feedback = MaxMapFeedback::tracking(&edges_observer, true, false);
let calibration = CalibrationStage::new(&map_feedback); let calibration = CalibrationStage::new(&map_feedback);

View File

@ -251,7 +251,7 @@ fn fuzz(
// Create an observation channel to keep track of the execution time // Create an observation channel to keep track of the execution time
let time_observer = TimeObserver::new("time"); let time_observer = TimeObserver::new("time");
let map_feedback = MaxMapFeedback::new_tracking(&edges_observer, true, false); let map_feedback = MaxMapFeedback::tracking(&edges_observer, true, false);
let calibration = CalibrationStage::new(&map_feedback); let calibration = CalibrationStage::new(&map_feedback);

View File

@ -258,7 +258,7 @@ fn fuzz(
// Create an observation channel using cmplog map // Create an observation channel using cmplog map
let cmplog_observer = CmpLogObserver::new("cmplog", true); let cmplog_observer = CmpLogObserver::new("cmplog", true);
let map_feedback = MaxMapFeedback::new_tracking(&edges_observer, true, false); let map_feedback = MaxMapFeedback::tracking(&edges_observer, true, false);
let calibration = CalibrationStage::new(&map_feedback); let calibration = CalibrationStage::new(&map_feedback);

View File

@ -311,7 +311,7 @@ fn fuzz_binary(
let cmplog_observer = CmpLogObserver::new("cmplog", true); let cmplog_observer = CmpLogObserver::new("cmplog", true);
let map_feedback = MaxMapFeedback::new_tracking(&edges_observer, true, false); let map_feedback = MaxMapFeedback::tracking(&edges_observer, true, false);
let calibration = CalibrationStage::new(&map_feedback); let calibration = CalibrationStage::new(&map_feedback);
@ -515,7 +515,7 @@ fn fuzz_text(
let cmplog_observer = CmpLogObserver::new("cmplog", true); let cmplog_observer = CmpLogObserver::new("cmplog", true);
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
let map_feedback = MaxMapFeedback::new_tracking(&edges_observer, true, true); let map_feedback = MaxMapFeedback::tracking(&edges_observer, true, true);
let calibration = CalibrationStage::new(&map_feedback); let calibration = CalibrationStage::new(&map_feedback);

View File

@ -208,7 +208,7 @@ pub fn LLVMFuzzerRunDriver(
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );

View File

@ -90,7 +90,7 @@ fn fuzz(corpus_dirs: &[PathBuf], objective_dir: PathBuf, broker_port: u16) -> Re
// Create an observation channel to keep track of the execution time // Create an observation channel to keep track of the execution time
let time_observer = TimeObserver::new("time"); let time_observer = TimeObserver::new("time");
let map_feedback = MaxMapFeedback::new_tracking(&edges_observer, true, false); let map_feedback = MaxMapFeedback::tracking(&edges_observer, true, false);
let calibration = CalibrationStage::new(&map_feedback); let calibration = CalibrationStage::new(&map_feedback);

View File

@ -144,7 +144,7 @@ pub fn libafl_main() {
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );

View File

@ -89,7 +89,7 @@ fn fuzz(corpus_dirs: &[PathBuf], objective_dir: PathBuf, broker_port: u16) -> Re
// Create an observation channel to keep track of the execution time // Create an observation channel to keep track of the execution time
let time_observer = TimeObserver::new("time"); let time_observer = TimeObserver::new("time");
let map_feedback = MaxMapFeedback::new_tracking(&edges_observer, true, false); let map_feedback = MaxMapFeedback::tracking(&edges_observer, true, false);
let calibration = CalibrationStage::new(&map_feedback); let calibration = CalibrationStage::new(&map_feedback);

View File

@ -138,7 +138,7 @@ pub fn libafl_main() {
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );

View File

@ -143,7 +143,7 @@ pub fn libafl_main() {
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );

View File

@ -79,7 +79,7 @@ fn fuzz(corpus_dirs: &[PathBuf], objective_dir: PathBuf, broker_port: u16) -> Re
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );

View File

@ -116,7 +116,7 @@ fn fuzz(
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );

View File

@ -66,7 +66,7 @@ fn fuzz(corpus_dirs: &[PathBuf], objective_dir: PathBuf, broker_port: u16) -> Re
// Create an observation channel to keep track of the execution time // Create an observation channel to keep track of the execution time
let time_observer = TimeObserver::new("time"); let time_observer = TimeObserver::new("time");
let map_feedback = MaxMapFeedback::new_tracking(&edges_observer, true, false); let map_feedback = MaxMapFeedback::tracking(&edges_observer, true, false);
let calibration = CalibrationStage::new(&map_feedback); let calibration = CalibrationStage::new(&map_feedback);

View File

@ -122,7 +122,7 @@ pub fn libafl_main() {
let context = NautilusContext::from_file(15, "grammar.json"); let context = NautilusContext::from_file(15, "grammar.json");
let mut event_converter = opt.bytes_broker_port.map(|port| { let mut event_converter = opt.bytes_broker_port.map(|port| {
LlmpEventConverter::new_on_port( LlmpEventConverter::on_port(
shmem_provider.clone(), shmem_provider.clone(),
port, port,
Some(NautilusToBytesInputConverter::new(&context)), Some(NautilusToBytesInputConverter::new(&context)),

View File

@ -123,7 +123,7 @@ pub fn fuzz() {
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );

View File

@ -127,7 +127,7 @@ pub fn fuzz() {
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );

View File

@ -155,7 +155,7 @@ pub fn fuzz() {
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, true), MaxMapFeedback::tracking(&edges_observer, true, true),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );

View File

@ -86,7 +86,7 @@ fn fuzz(corpus_dirs: &[PathBuf], objective_dir: PathBuf, broker_port: u16) -> Re
// Create an observation channel to keep track of the execution time // Create an observation channel to keep track of the execution time
let time_observer = TimeObserver::new("time"); let time_observer = TimeObserver::new("time");
let map_feedback = MaxMapFeedback::new_tracking(&edges_observer, true, false); let map_feedback = MaxMapFeedback::tracking(&edges_observer, true, false);
let calibration = CalibrationStage::new(&map_feedback); let calibration = CalibrationStage::new(&map_feedback);

View File

@ -103,7 +103,7 @@ where
/// Create llmp on a port /// Create llmp on a port
/// The port must not be bound yet to have a broker. /// The port must not be bound yet to have a broker.
#[cfg(feature = "std")] #[cfg(feature = "std")]
pub fn new_on_port(shmem_provider: SP, monitor: MT, port: u16) -> Result<Self, Error> { pub fn on_port(shmem_provider: SP, monitor: MT, port: u16) -> Result<Self, Error> {
Ok(Self { Ok(Self {
monitor, monitor,
llmp: llmp::LlmpBroker::create_attach_to_tcp(shmem_provider, port)?, llmp: llmp::LlmpBroker::create_attach_to_tcp(shmem_provider, port)?,
@ -371,7 +371,7 @@ where
/// If the port is not yet bound, it will act as broker /// If the port is not yet bound, it will act as broker
/// Else, it will act as client. /// Else, it will act as client.
#[cfg(feature = "std")] #[cfg(feature = "std")]
pub fn new_on_port( pub fn on_port(
shmem_provider: SP, shmem_provider: SP,
port: u16, port: u16,
configuration: EventConfig, configuration: EventConfig,
@ -937,7 +937,7 @@ where
} }
} }
ManagerKind::Broker => { ManagerKind::Broker => {
let event_broker = LlmpEventBroker::<S::Input, MT, SP>::new_on_port( let event_broker = LlmpEventBroker::<S::Input, MT, SP>::on_port(
self.shmem_provider.clone(), self.shmem_provider.clone(),
self.monitor.take().unwrap(), self.monitor.take().unwrap(),
self.broker_port, self.broker_port,
@ -948,7 +948,7 @@ where
} }
ManagerKind::Client { cpu_core } => { ManagerKind::Client { cpu_core } => {
// We are a client // We are a client
let mgr = LlmpEventManager::<S, SP>::new_on_port( let mgr = LlmpEventManager::<S, SP>::on_port(
self.shmem_provider.clone(), self.shmem_provider.clone(),
self.broker_port, self.broker_port,
self.configuration, self.configuration,
@ -1166,7 +1166,7 @@ where
/// Create a client from port and the input converters /// Create a client from port and the input converters
#[cfg(feature = "std")] #[cfg(feature = "std")]
pub fn new_on_port( pub fn on_port(
shmem_provider: SP, shmem_provider: SP,
port: u16, port: u16,
converter: Option<IC>, converter: Option<IC>,

View File

@ -429,7 +429,7 @@ where
MT: Monitor, //TODO CE: CustomEvent, MT: Monitor, //TODO CE: CustomEvent,
{ {
/// Creates a new [`SimpleEventManager`]. /// Creates a new [`SimpleEventManager`].
fn new_launched(monitor: MT, staterestorer: StateRestorer<SP>) -> Self { fn launched(monitor: MT, staterestorer: StateRestorer<SP>) -> Self {
Self { Self {
staterestorer, staterestorer,
simple_event_mgr: SimpleEventManager::new(monitor), simple_event_mgr: SimpleEventManager::new(monitor),
@ -535,7 +535,7 @@ where
// Mgr to send and receive msgs from/to all other fuzzer instances // Mgr to send and receive msgs from/to all other fuzzer instances
( (
None, None,
SimpleRestartingEventManager::new_launched(monitor, staterestorer), SimpleRestartingEventManager::launched(monitor, staterestorer),
) )
} }
// Restoring from a previous run, deserialize state and corpus. // Restoring from a previous run, deserialize state and corpus.
@ -551,7 +551,7 @@ where
( (
Some(state), Some(state),
SimpleRestartingEventManager::new_launched(monitor, staterestorer), SimpleRestartingEventManager::launched(monitor, staterestorer),
) )
} }
}; };

View File

@ -666,7 +666,7 @@ where
/// Create new `MapFeedback` specifying if it must track indexes of used entries and/or novelties /// Create new `MapFeedback` specifying if it must track indexes of used entries and/or novelties
#[must_use] #[must_use]
pub fn new_tracking(map_observer: &O, track_indexes: bool, track_novelties: bool) -> Self { pub fn tracking(map_observer: &O, track_indexes: bool, track_novelties: bool) -> Self {
Self { Self {
indexes: track_indexes, indexes: track_indexes,
novelties: if track_novelties { Some(vec![]) } else { None }, novelties: if track_novelties { Some(vec![]) } else { None },

View File

@ -558,7 +558,7 @@ where
/// Creates a new [`MapObserver`] with an owned map /// Creates a new [`MapObserver`] with an owned map
#[must_use] #[must_use]
pub fn new_owned<S>(name: S, map: Vec<T>) -> Self pub fn owned<S>(name: S, map: Vec<T>) -> Self
where where
S: Into<String>, S: Into<String>,
{ {
@ -905,7 +905,7 @@ where
/// Creates a new [`MapObserver`] with an owned map /// Creates a new [`MapObserver`] with an owned map
#[must_use] #[must_use]
pub fn new_owned(name: &'static str, map: Vec<T>) -> Self { pub fn owned(name: &'static str, map: Vec<T>) -> Self {
assert!(map.len() >= N); assert!(map.len() >= N);
let initial = if map.is_empty() { T::default() } else { map[0] }; let initial = if map.is_empty() { T::default() } else { map[0] };
Self { Self {
@ -1828,7 +1828,7 @@ where
{ {
/// Creates a new [`MultiMapObserver`], maybe in differential mode /// Creates a new [`MultiMapObserver`], maybe in differential mode
#[must_use] #[must_use]
fn new_maybe_differential(name: &'static str, maps: Vec<OwnedMutSlice<'a, T>>) -> Self { fn maybe_differential(name: &'static str, maps: Vec<OwnedMutSlice<'a, T>>) -> Self {
let mut idx = 0; let mut idx = 0;
let mut builder = vec![]; let mut builder = vec![];
for (v, x) in maps.iter().enumerate() { for (v, x) in maps.iter().enumerate() {
@ -1855,7 +1855,7 @@ where
/// Creates a new [`MultiMapObserver`] in differential mode /// Creates a new [`MultiMapObserver`] in differential mode
#[must_use] #[must_use]
pub fn differential(name: &'static str, maps: Vec<OwnedMutSlice<'a, T>>) -> Self { pub fn differential(name: &'static str, maps: Vec<OwnedMutSlice<'a, T>>) -> Self {
Self::new_maybe_differential(name, maps) Self::maybe_differential(name, maps)
} }
} }
@ -1866,12 +1866,12 @@ where
/// Creates a new [`MultiMapObserver`] /// Creates a new [`MultiMapObserver`]
#[must_use] #[must_use]
pub fn new(name: &'static str, maps: Vec<OwnedMutSlice<'a, T>>) -> Self { pub fn new(name: &'static str, maps: Vec<OwnedMutSlice<'a, T>>) -> Self {
Self::new_maybe_differential(name, maps) Self::maybe_differential(name, maps)
} }
/// Creates a new [`MultiMapObserver`] with an owned map /// Creates a new [`MultiMapObserver`] with an owned map
#[must_use] #[must_use]
pub fn new_owned(name: &'static str, maps: Vec<Vec<T>>) -> Self { pub fn owned(name: &'static str, maps: Vec<Vec<T>>) -> Self {
let mut idx = 0; let mut idx = 0;
let mut v = 0; let mut v = 0;
let mut builder = vec![]; let mut builder = vec![];

View File

@ -77,6 +77,8 @@ where
} }
} }
/// A conditionally enabled stage.
/// If the closure returns true, the wrapped stage will be executed, else it will be skipped.
#[derive(Debug)] #[derive(Debug)]
pub struct IfStage<CB, E, EM, ST, Z> pub struct IfStage<CB, E, EM, ST, Z>
where where
@ -134,7 +136,8 @@ where
ST: StagesTuple<E, EM, E::State, Z>, ST: StagesTuple<E, EM, E::State, Z>,
Z: UsesState<State = E::State>, Z: UsesState<State = E::State>,
{ {
/// Constructor /// Constructor for this conditionally enabled stage.
/// If the closure returns true, the wrapped stage will be executed, else it will be skipped.
pub fn new(closure: CB, if_stages: ST) -> Self { pub fn new(closure: CB, if_stages: ST) -> Self {
Self { Self {
closure, closure,

View File

@ -578,7 +578,7 @@ impl AsanErrorsObserver {
/// Creates a new `AsanErrorsObserver`, owning the `AsanErrors` /// Creates a new `AsanErrorsObserver`, owning the `AsanErrors`
#[must_use] #[must_use]
pub fn new_owned(errors: Option<AsanErrors>) -> Self { pub fn owned(errors: Option<AsanErrors>) -> Self {
Self { Self {
errors: OwnedPtr::Owned(Box::new(errors)), errors: OwnedPtr::Owned(Box::new(errors)),
} }

View File

@ -136,7 +136,7 @@ impl<'a, const MAP_SIZE: usize> ForkserverBytesCoverageSugar<'a, MAP_SIZE> {
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );

View File

@ -155,7 +155,7 @@ where
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );

View File

@ -166,7 +166,7 @@ where
// This one is composed by two Feedbacks in OR // This one is composed by two Feedbacks in OR
let mut feedback = feedback_or!( let mut feedback = feedback_or!(
// New maximization map feedback linked to the edges observer and the feedback state // New maximization map feedback linked to the edges observer and the feedback state
MaxMapFeedback::new_tracking(&edges_observer, true, false), MaxMapFeedback::tracking(&edges_observer, true, false),
// Time feedback, this one does not need a feedback state // Time feedback, this one does not need a feedback state
TimeFeedback::with_observer(&time_observer) TimeFeedback::with_observer(&time_observer)
); );

View File

@ -45,7 +45,7 @@ impl DrCovBasicBlock {
/// Create a new [`DrCovBasicBlock`] with a given `start` address and a block size. /// Create a new [`DrCovBasicBlock`] with a given `start` address and a block size.
#[must_use] #[must_use]
pub fn new_with_size(start: usize, size: usize) -> Self { pub fn with_size(start: usize, size: usize) -> Self {
Self::new(start, start + size) Self::new(start, start + size)
} }
} }