Trait VmCoreAir

Source
pub trait VmCoreAir<AB, I>: BaseAirWithPublicValues<AB::F>
where AB: AirBuilder, I: VmAdapterInterface<AB::Expr>,
{ // Required methods fn eval( &self, builder: &mut AB, local_core: &[AB::Var], from_pc: AB::Var, ) -> AdapterAirContext<AB::Expr, I>; fn start_offset(&self) -> usize; // Provided methods fn start_offset_expr(&self) -> AB::Expr { ... } fn expr_to_global_expr(&self, local_expr: impl Into<AB::Expr>) -> AB::Expr { ... } fn opcode_to_global_expr(&self, local_opcode: impl LocalOpcode) -> AB::Expr { ... } }

Required Methods§

Source

fn eval( &self, builder: &mut AB, local_core: &[AB::Var], from_pc: AB::Var, ) -> AdapterAirContext<AB::Expr, I>

Returns (to_pc, interface).

Source

fn start_offset(&self) -> usize

The offset the opcodes by this chip start from. This is usually just CorrespondingOpcode::CLASS_OFFSET, but sometimes (for modular chips, for example) it also depends on something else.

Provided Methods§

Source

fn start_offset_expr(&self) -> AB::Expr

Source

fn expr_to_global_expr(&self, local_expr: impl Into<AB::Expr>) -> AB::Expr

Source

fn opcode_to_global_expr(&self, local_opcode: impl LocalOpcode) -> AB::Expr

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§