41 static int LuaDatasetGC(
lua_State *luastate)
45 if (s != NULL && s->
set != NULL) {
53 static int LuaDatasetGetRef(
lua_State *luastate)
61 const char *
name = lua_tostring(luastate, 2);
67 if (dataset == NULL) {
74 static int LuaDatasetAdd(
lua_State *luastate)
81 if (!lua_isstring(luastate, 2)) {
84 if (!lua_isnumber(luastate, 3)) {
88 const uint8_t *
str = (
const uint8_t *)lua_tostring(luastate, 2);
93 uint32_t str_len = lua_tonumber(luastate, 3);
97 lua_pushnumber(luastate, (lua_Number)r);
102 static int LuaDatasetNew(
lua_State *luastate)
109 luaL_getmetatable(luastate,
"dataset::metatable");
110 lua_setmetatable(luastate, -2);
116 static const luaL_Reg datasetlib[] = {
117 {
"new", LuaDatasetNew },
118 {
"get", LuaDatasetGetRef },
119 {
"add", LuaDatasetAdd },
120 {
"__gc", LuaDatasetGC },
127 luaL_newmetatable(luastate,
"dataset::metatable");
128 lua_pushvalue(luastate, -1);
129 lua_setfield(luastate, -2,
"__index");
130 luaL_setfuncs(luastate, datasetlib, 0);
131 luaL_newlib(luastate, datasetlib);