openvm_circuit::arch

Trait VmExtension

Source
pub trait VmExtension<F: PrimeField32> {
    type Executor: InstructionExecutor<F> + AnyEnum;
    type Periphery: AnyEnum;

    // Required method
    fn build(
        &self,
        builder: &mut VmInventoryBuilder<'_, F>,
    ) -> Result<VmInventory<Self::Executor, Self::Periphery>, VmInventoryError>;
}
Expand description

Configuration for a processor extension.

There are two associated types:

Required Associated Types§

Source

type Executor: InstructionExecutor<F> + AnyEnum

Enum of chips that implement InstructionExecutor for instruction execution. Executor must implement Chip<SC> but the trait bound is omitted to omit the StarkGenericConfig generic parameter.

Source

type Periphery: AnyEnum

Enum of periphery chips that do not implement InstructionExecutor. Periphery must implement Chip<SC> but the trait bound is omitted to omit the StarkGenericConfig generic parameter.

Required Methods§

Source

fn build( &self, builder: &mut VmInventoryBuilder<'_, F>, ) -> Result<VmInventory<Self::Executor, Self::Periphery>, VmInventoryError>

Implementors§