dstest 0.1.6

Deterministic Simulation Testing for containerised services
use mlua::{Lua, Table};

use crate::bindings::LuaModule;
use crate::engine::context::BindingContext;
use crate::substrate::Substrate;

mod clear;
mod oracle;
mod run_steps;
mod step;

pub struct Dst;

impl<S: Substrate> LuaModule<S> for Dst {
    fn register(lua: &Lua, dstest: &Table, ctx: &BindingContext<S>) -> mlua::Result<()> {
        let dst_table = lua.create_table()?;
        clear::register(lua, &dst_table, ctx)?;
        oracle::register(lua, &dst_table, ctx)?;
        step::register(lua, &dst_table, ctx)?;
        run_steps::register(lua, &dst_table, ctx)?;
        dstest.set("dst", dst_table)?;
        Ok(())
    }
}