summaryrefslogtreecommitdiff
path: root/matrix-stdlib/src/lib.rs
blob: b4ab65843104850f3d61e0a0b6125b081a2dd113 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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);
}