Trait EncodingAnalysisCache

pub trait EncodingAnalysisCache<A: Arch> {
    // Required methods
    fn infer_accesses<O: Oracle<A>>(
        &self,
        o: &mut O,
        instr: &Instruction,
    ) -> Result<MemoryAccesses<A>, AccessAnalysisError<A>>;
    fn infer_dataflow<O: Oracle<A>>(
        &self,
        o: &mut O,
        memory_accesses: &MemoryAccesses<A>,
    ) -> Result<Dataflows<A, ()>, DataflowAnalysisError<A>>;
    fn infer_threshold_values<O: Oracle<A>>(
        &self,
        o: &mut O,
        dataflows: &Dataflows<A, ()>,
        state_gen: &StateGen<'_, A, O::MappableArea>,
    ) -> ThresholdValues<A>;
    fn num_entries(&self) -> usize;
}
Expand description

Generic trait for an encoding analysis cache.

Required Methods§

fn infer_accesses<O: Oracle<A>>( &self, o: &mut O, instr: &Instruction, ) -> Result<MemoryAccesses<A>, AccessAnalysisError<A>>

fn infer_dataflow<O: Oracle<A>>( &self, o: &mut O, memory_accesses: &MemoryAccesses<A>, ) -> Result<Dataflows<A, ()>, DataflowAnalysisError<A>>

fn infer_threshold_values<O: Oracle<A>>( &self, o: &mut O, dataflows: &Dataflows<A, ()>, state_gen: &StateGen<'_, A, O::MappableArea>, ) -> ThresholdValues<A>

fn num_entries(&self) -> usize

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§