xmachine 0.2.1

A fast, cross platform virtual machine implemented in Rust without the Standard Library
Documentation
extern crate xmachine;
use xmachine::{Machine, Ref, Value};

extern crate alloc;
use alloc::collections::BTreeMap;

#[cfg(test)]
mod value {
    use super::*;

    #[test]
    fn call() {
        let mut m = Machine::new();

        let f = Value::function(
            |m: &mut Machine| {
                m.return_value(Value::from(5));
            },
            &m,
        );

        f.call(&mut m);
        assert_eq!(m.stack, vec![Value::number(5)]);
    }

    #[test]
    fn display() {
        assert_eq!(String::from("test"), format!("{}", Value::string("test")))
    }

    #[test]
    fn index() {
        let mut map: BTreeMap<String, Ref<Value>> = BTreeMap::new();

        map.insert(String::from("test"), Value::number(5));

        assert_eq!(Value::from(map).index("test"), Value::number(5));
    }
}