Newer
Older
use ::tarantool::tlua::{self, LuaFunction, LuaTable};
mod ffi {
use libc::c_char;
extern "C" {
pub fn tarantool_version() -> *const c_char;
pub fn tarantool_package() -> *const c_char;
}
}
pub fn version() -> &'static str {
let c_ptr = unsafe { ffi::tarantool_version() };
let c_str = unsafe { CStr::from_ptr(c_ptr) };
return c_str.to_str().unwrap();
}
pub fn package() -> &'static str {
let c_ptr = unsafe { ffi::tarantool_package() };
let c_str = unsafe { CStr::from_ptr(c_ptr) };
return c_str.to_str().unwrap();
}
inventory::submit!(crate::InnerTest {
name: "test_version",
body: || {
let t: tlua::LuaTable<_> = l.eval("return require('tarantool')").unwrap();
assert_eq!(version(), t.get::<String, _>("version").unwrap());
assert_eq!(package(), t.get::<String, _>("package").unwrap());
}
});
#[derive(Clone, Debug, tlua::Push, tlua::LuaRead, PartialEq)]
pub listen: Option<String>,
pub wal_dir: String,
pub memtx_dir: String,
}
impl Default for Cfg {
fn default() -> Self {
Self {
listen: Some("3301".into()),
wal_dir: ".".into(),
memtx_dir: ".".into(),
}
}
}
#[allow(dead_code)]
pub fn cfg() -> Option<Cfg> {
let b: LuaTable<_> = l.get("box")?;
b.get("cfg")
pub fn set_cfg(cfg: &Cfg) {
let box_cfg = LuaFunction::load(l, "return box.cfg(...)").unwrap();
pub fn eval(code: &str) {