Trait libafl::events::AdaptiveSerializer

source ·
pub trait AdaptiveSerializer {
    // Required methods
    fn serialization_time(&self) -> Duration;
    fn deserialization_time(&self) -> Duration;
    fn serializations_cnt(&self) -> usize;
    fn should_serialize_cnt(&self) -> usize;
    fn serialization_time_mut(&mut self) -> &mut Duration;
    fn deserialization_time_mut(&mut self) -> &mut Duration;
    fn serializations_cnt_mut(&mut self) -> &mut usize;
    fn should_serialize_cnt_mut(&mut self) -> &mut usize;

    // Provided method
    fn serialize_observers_adaptive<S, OT>(
        &mut self,
        observers: &OT,
        time_factor: u32,
        percentage_threshold: usize
    ) -> Result<Option<Vec<u8>>, Error>
       where OT: ObserversTuple<S> + Serialize,
             S: UsesInput { ... }
}
Expand description

Collected stats to decide if observers must be serialized or not

Required Methods§

source

fn serialization_time(&self) -> Duration

Expose the collected observers serialization time

source

fn deserialization_time(&self) -> Duration

Expose the collected observers deserialization time

source

fn serializations_cnt(&self) -> usize

How many times observers were serialized

source

fn should_serialize_cnt(&self) -> usize

How many times shoukd have been serialized an observer

source

fn serialization_time_mut(&mut self) -> &mut Duration

Expose the collected observers serialization time (mut)

source

fn deserialization_time_mut(&mut self) -> &mut Duration

Expose the collected observers deserialization time (mut)

source

fn serializations_cnt_mut(&mut self) -> &mut usize

How many times observers were serialized (mut)

source

fn should_serialize_cnt_mut(&mut self) -> &mut usize

How many times shoukd have been serialized an observer (mut)

Provided Methods§

source

fn serialize_observers_adaptive<S, OT>( &mut self, observers: &OT, time_factor: u32, percentage_threshold: usize ) -> Result<Option<Vec<u8>>, Error>
where OT: ObserversTuple<S> + Serialize, S: UsesInput,

Serialize the observer using the time_factor and percentage_threshold. These parameters are unique to each of the different types of EventManager

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<EM, SP> AdaptiveSerializer for CentralizedEventManager<EM, SP>
where EM: AdaptiveSerializer + UsesState, SP: ShMemProvider + 'static,

source§

impl<EMH, S, SP> AdaptiveSerializer for LlmpEventManager<EMH, S, SP>
where SP: ShMemProvider + 'static, S: State,

source§

impl<EMH, S, SP> AdaptiveSerializer for LlmpRestartingEventManager<EMH, S, SP>
where SP: ShMemProvider + 'static, S: State,