openvm_circuit::arch

Trait VmAdapterInterface

Source
pub trait VmAdapterInterface<T> {
    type Reads;
    type Writes;
    type ProcessedInstruction;
}
Expand description

The interface between primitive AIR and machine adapter AIR.

Required Associated Types§

Source

type Reads

The memory read data that should be exposed for downstream use

Source

type Writes

The memory write data that are expected to be provided by the integrator

Source

type ProcessedInstruction

The parts of the instruction that should be exposed to the integrator. This will typically include is_valid, which indicates whether the trace row is being used and opcode to indicate which opcode is being executed if the VmChip supports multiple opcodes.

Implementors§

Source§

impl<T> VmAdapterInterface<T> for DynAdapterInterface<T>

Source§

impl<T, PI, const NUM_READS: usize, const NUM_WRITES: usize, const READ_SIZE: usize, const WRITE_SIZE: usize> VmAdapterInterface<T> for BasicAdapterInterface<T, PI, NUM_READS, NUM_WRITES, READ_SIZE, WRITE_SIZE>

Source§

impl<T, PI, const READ_CELLS: usize, const WRITE_CELLS: usize> VmAdapterInterface<T> for FlatInterface<T, PI, READ_CELLS, WRITE_CELLS>

Source§

impl<T, const BLOCKS_PER_READ1: usize, const BLOCKS_PER_READ2: usize, const BLOCKS_PER_WRITE: usize, const READ_SIZE: usize, const WRITE_SIZE: usize> VmAdapterInterface<T> for VecHeapTwoReadsAdapterInterface<T, BLOCKS_PER_READ1, BLOCKS_PER_READ2, BLOCKS_PER_WRITE, READ_SIZE, WRITE_SIZE>

Source§

impl<T, const NUM_READS: usize, const BLOCKS_PER_READ: usize, const BLOCKS_PER_WRITE: usize, const READ_SIZE: usize, const WRITE_SIZE: usize> VmAdapterInterface<T> for VecHeapAdapterInterface<T, NUM_READS, BLOCKS_PER_READ, BLOCKS_PER_WRITE, READ_SIZE, WRITE_SIZE>