pub trait VmBuilder<E: StarkEngine>: Sized {
type VmConfig: VmConfig<E::SC>;
type RecordArena: Arena;
type SystemChipInventory: SystemChipComplex<Self::RecordArena, E::PB>;
// Required method
fn create_chip_complex(
&self,
config: &Self::VmConfig,
circuit: AirInventory<E::SC>,
) -> Result<VmChipComplex<E::SC, Self::RecordArena, E::PB, Self::SystemChipInventory>, ChipInventoryError>;
}
Expand description
This trait is intended to be implemented on a new type wrapper of the VmConfig struct to get around Rust orphan rules.
Required Associated Types§
type VmConfig: VmConfig<E::SC>
type RecordArena: Arena
type SystemChipInventory: SystemChipComplex<Self::RecordArena, E::PB>
Required Methods§
Sourcefn create_chip_complex(
&self,
config: &Self::VmConfig,
circuit: AirInventory<E::SC>,
) -> Result<VmChipComplex<E::SC, Self::RecordArena, E::PB, Self::SystemChipInventory>, ChipInventoryError>
fn create_chip_complex( &self, config: &Self::VmConfig, circuit: AirInventory<E::SC>, ) -> Result<VmChipComplex<E::SC, Self::RecordArena, E::PB, Self::SystemChipInventory>, ChipInventoryError>
Create a VmChipComplex from the full AirInventory, which should be the output of VmCircuitConfig::create_airs.
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.