VmConfig

Trait VmConfig 

Source
pub trait VmConfig<SC>:
    Clone
    + Serialize
    + DeserializeOwned
    + InitFileGenerator
    + VmExecutionConfig<Val<SC>>
    + VmCircuitConfig<SC>
    + AsRef<SystemConfig>
    + AsMut<SystemConfig>{ }
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.

Implementors§