multiversx_chain_vm/host/vm_hooks/
instance_state_set_early_exit.rs

1use multiversx_chain_vm_executor::{InstanceState, VMHooksEarlyExit, VMHooksSetEarlyExit};
2
3use super::{TxVMHooksContext, VMHooksDispatcher};
4
5/// Allows external instance state types to define `set_early_exit`, and thus be usable in VM hooks adapters.
6pub trait InstanceStateSetEarlyExit: InstanceState {
7    fn set_early_exit(&self, early_exit: VMHooksEarlyExit);
8}
9
10impl<S> VMHooksSetEarlyExit for VMHooksDispatcher<TxVMHooksContext<S>>
11where
12    S: InstanceStateSetEarlyExit,
13{
14    fn set_early_exit(&self, early_exit: VMHooksEarlyExit) {
15        self.handler
16            .context
17            .instance_state_ref
18            .set_early_exit(early_exit);
19    }
20}