pub trait VmConfig<SC>:
Clone
+ Serialize
+ DeserializeOwned
+ InitFileGenerator
+ VmExecutionConfig<Val<SC>>
+ VmCircuitConfig<SC>
+ AsRef<SystemConfig>
+ AsMut<SystemConfig>where
SC: StarkGenericConfig,{ }
Expand description
A VM configuration is the minimum serializable format to be able to create the execution
environment and circuit for a zkVM supporting a fixed set of instructions.
This trait contains the sub-traits VmExecutionConfig and VmCircuitConfig.
The InitFileGenerator sub-trait provides custom build hooks to generate code for initializing
some VM extensions. The VmConfig
is expected to contain the SystemConfig internally.
For users who only need to create an execution environment, use the sub-trait
VmExecutionConfig to avoid the SC
generic.
This trait does not contain the VmBuilder trait, because a single VM configuration may implement multiple VmBuilders for different prover backends.
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.