use matrix::vm::{Vm, StackFrame}; mod core; mod sys; mod math; mod io; mod iter; pub(crate) type VmArgs<'a, 'b> = (&'a mut Vm, &'b mut StackFrame); macro_rules! error { ($($arg:tt)*) => { Err(format!($($arg)*).into()) }; } macro_rules! next { ($vm:expr, $frame:expr, $iter:expr) => { $vm.run_fn($frame, $iter.clone(), vec![]) }; } pub(crate) use error; pub(crate) use next; pub fn load(vm: &mut Vm) { core::load(vm); sys::load(vm); io::load(vm); iter::load(vm); math::load(vm); }