pub trait VmDebugger<SE: ScriptExpression> {
// Provided methods
fn on_enter_scope(
&mut self,
scope: &VmScope<'_, SE>,
context: &mut Context,
registry: &Registry,
) { ... }
fn on_exit_scope(
&mut self,
scope: &VmScope<'_, SE>,
context: &mut Context,
registry: &Registry,
) { ... }
fn on_enter_operation(
&mut self,
scope: &VmScope<'_, SE>,
operation: &ScriptOperation<'_, SE>,
position: usize,
context: &mut Context,
registry: &Registry,
) { ... }
fn on_exit_operation(
&mut self,
scope: &VmScope<'_, SE>,
operation: &ScriptOperation<'_, SE>,
position: usize,
context: &mut Context,
registry: &Registry,
) { ... }
fn into_handle(self) -> VmDebuggerHandle<SE>
where Self: Sized + Send + Sync + 'static { ... }
}