naev 0.12.5
nlua_data.h
1/*
2 * See Licensing and Copyright notice in naev.h
3 */
4#pragma once
5
6#include "nlua.h"
7
8#define DATA_METATABLE "data"
9
10typedef enum LuaDataType_e {
11 LUADATA_NUMBER,
12} LuaDataType_t;
13
17typedef struct LuaData_s {
18 size_t size;
19 size_t elem;
20 void *data;
21 LuaDataType_t type;
22} LuaData_t;
23
24/*
25 * Library loading
26 */
27int nlua_loadData( nlua_env env );
28
29/* Basic operations. */
30LuaData_t *lua_todata( lua_State *L, int ind );
31LuaData_t *luaL_checkdata( lua_State *L, int ind );
32LuaData_t *lua_pushdata( lua_State *L, LuaData_t data );
33int lua_isdata( lua_State *L, int ind );
LuaData_t * luaL_checkdata(lua_State *L, int ind)
Gets data at index or raises error if there is no data at index.
Definition nlua_data.c:80
int lua_isdata(lua_State *L, int ind)
Checks to see if ind is a data.
Definition nlua_data.c:110
LuaData_t * lua_pushdata(lua_State *L, LuaData_t data)
Pushes a data on the stack.
Definition nlua_data.c:94
LuaData_t * lua_todata(lua_State *L, int ind)
Lua bindings to interact with datas.
Definition nlua_data.c:69
int nlua_loadData(nlua_env env)
Loads the data library.
Definition nlua_data.c:51
Wrapper to datas.
Definition nlua_data.h:17
LuaDataType_t type
Definition nlua_data.h:21
void * data
Definition nlua_data.h:20
size_t size
Definition nlua_data.h:18
size_t elem
Definition nlua_data.h:19