anvil_zksync_core/node/
vm.rs1use zksync_multivm::{interface::storage::WriteStorage, vm_latest::Vm, HistoryMode};
2
3use super::boojumos::BoojumOsVM;
4
5#[allow(clippy::large_enum_variant)]
6pub enum AnvilVM<W: WriteStorage, H: HistoryMode> {
7 BoojumOs(BoojumOsVM<W, H>),
8 ZKSync(Vm<W, H>),
9}
10
11#[macro_export]
12macro_rules! delegate_vm {
13 ($variable:expr, $function:ident($($params:tt)*)) => {
14 match &mut $variable {
15 AnvilVM::BoojumOs(vm) => vm.$function($($params)*),
16 AnvilVM::ZKSync(vm) => vm.$function($($params)*),
17 }
18 };
19}