#[repr(C)]pub struct evmc_vm {
pub abi_version: c_int,
pub name: *const c_char,
pub version: *const c_char,
pub destroy: evmc_destroy_fn,
pub execute: evmc_execute_fn,
pub get_capabilities: evmc_get_capabilities_fn,
pub set_option: evmc_set_option_fn,
}Expand description
The VM instance.
Defines the base struct of the VM implementation.
Fields§
§abi_version: c_intEVMC ABI version implemented by the VM instance.
Can be used to detect ABI incompatibilities. The EVMC ABI version represented by this file is in ::EVMC_ABI_VERSION.
name: *const c_charThe name of the EVMC VM implementation.
It MUST be a NULL-terminated not empty string. The content MUST be UTF-8 encoded (this implies ASCII encoding is also allowed).
version: *const c_charThe version of the EVMC VM implementation, e.g. “1.2.3b4”.
It MUST be a NULL-terminated not empty string. The content MUST be UTF-8 encoded (this implies ASCII encoding is also allowed).
destroy: evmc_destroy_fnPointer to function destroying the VM instance.
This is a mandatory method and MUST NOT be set to NULL.
execute: evmc_execute_fnPointer to function executing a code by the VM instance.
This is a mandatory method and MUST NOT be set to NULL.
get_capabilities: evmc_get_capabilities_fnA method returning capabilities supported by the VM instance.
The value returned MAY change when different options are set via the set_option() method.
A Client SHOULD only rely on the value returned if it has queried it after it has called the set_option().
This is a mandatory method and MUST NOT be set to NULL.
set_option: evmc_set_option_fnOptional pointer to function modifying VM’s options.
If the VM does not support this feature the pointer can be NULL.