pub trait FunctionTargetProcessor {
    // Required method
    fn name(&self) -> String;

    // Provided methods
    fn process(
        &self,
        _targets: &mut FunctionTargetsHolder,
        _fun_env: &FunctionEnv<'_>,
        _data: FunctionData
    ) -> FunctionData { ... }
    fn process_and_maybe_remove(
        &self,
        targets: &mut FunctionTargetsHolder,
        func_env: &FunctionEnv<'_>,
        data: FunctionData
    ) -> Option<FunctionData> { ... }
    fn initialize(&self, _env: &GlobalEnv, _targets: &mut FunctionTargetsHolder) { ... }
    fn finalize(&self, _env: &GlobalEnv, _targets: &mut FunctionTargetsHolder) { ... }
    fn is_single_run(&self) -> bool { ... }
    fn run(&self, _env: &GlobalEnv, _targets: &mut FunctionTargetsHolder) { ... }
    fn dump_result(
        &self,
        _f: &mut Formatter<'_>,
        _env: &GlobalEnv,
        _targets: &FunctionTargetsHolder
    ) -> Result { ... }
}
Expand description

A trait describing a function target processor.

Required Methods§

source

fn name(&self) -> String

Returns a name for this processor. This should be suitable as a file suffix.

Provided Methods§

source

fn process( &self, _targets: &mut FunctionTargetsHolder, _fun_env: &FunctionEnv<'_>, _data: FunctionData ) -> FunctionData

Processes a function variant. Takes as parameter a target holder which can be mutated, the env of the function being processed, and the target data. During the time the processor is called, the target data is removed from the holder, and added back once transformation has finished. This allows the processor to take ownership on the target data.

source

fn process_and_maybe_remove( &self, targets: &mut FunctionTargetsHolder, func_env: &FunctionEnv<'_>, data: FunctionData ) -> Option<FunctionData>

Same as process but can return None to indicate that the function variant is removed. By default, this maps to Some(self.process(..)). One needs to implement either this function or process.

source

fn initialize(&self, _env: &GlobalEnv, _targets: &mut FunctionTargetsHolder)

A function which is called once before any process call is issued.

source

fn finalize(&self, _env: &GlobalEnv, _targets: &mut FunctionTargetsHolder)

A function which is called once after the last process call.

source

fn is_single_run(&self) -> bool

A function which can be implemented to indicate that instead of a sequence of initialize, process, and finalize, this processor has a single run function for the analysis of the whole set of functions.

source

fn run(&self, _env: &GlobalEnv, _targets: &mut FunctionTargetsHolder)

To be implemented if is_single_run() is true.

source

fn dump_result( &self, _f: &mut Formatter<'_>, _env: &GlobalEnv, _targets: &FunctionTargetsHolder ) -> Result

A function which creates a dump of the processors results, for debugging.

Implementors§

source§

impl FunctionTargetProcessor for BorrowAnalysisProcessor

source§

impl FunctionTargetProcessor for CleanAndOptimizeProcessor

source§

impl FunctionTargetProcessor for DataInvariantInstrumentationProcessor

source§

impl FunctionTargetProcessor for DebugInstrumenter

source§

impl FunctionTargetProcessor for EliminateImmRefsProcessor

source§

impl FunctionTargetProcessor for GlobalInvariantAnalysisProcessor

source§

impl FunctionTargetProcessor for GlobalInvariantInstrumentationProcessor

source§

impl FunctionTargetProcessor for GlobalInvariantInstrumentationProcessorV2

source§

impl FunctionTargetProcessor for InconsistencyCheckInstrumenter

source§

impl FunctionTargetProcessor for LiveVarAnalysisProcessor

source§

impl FunctionTargetProcessor for LoopAnalysisProcessor

source§

impl FunctionTargetProcessor for MemoryInstrumentationProcessor

source§

impl FunctionTargetProcessor for MonoAnalysisProcessor

This processor computes monomorphization information for backends.

source§

impl FunctionTargetProcessor for MutRefInstrumenter

source§

impl FunctionTargetProcessor for MutationTester

source§

impl FunctionTargetProcessor for PackedTypesProcessor

source§

impl FunctionTargetProcessor for ReachingDefProcessor

source§

impl FunctionTargetProcessor for ReadWriteSetProcessor

source§

impl FunctionTargetProcessor for SpecInstrumentationProcessor

source§

impl FunctionTargetProcessor for UsageProcessor

source§

impl FunctionTargetProcessor for VerificationAnalysisProcessor

source§

impl FunctionTargetProcessor for VerificationAnalysisProcessorV2