Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Модуль lua/utils

void *luaL_pushcdata(struct lua_State *L, uint32_t ctypeid)

Поместить в стек cdata с заданным ctypeid.

CTypeID должен быть хотя бы один раз использован из FFI. Выделенная память возвращается неинициализированной. Поддерживаются только числа и указатели.

Параметры:

  • L (lua_State*) — состояние Lua

  • ctypeid (uint32_t) — CTypeID этого cdata из FFI

Возвращает

память, связанную с этим cdata

См. также: luaL_checkcdata()

void *luaL_checkcdata(struct lua_State *L, int idx, uint32_t *ctypeid)

Проверить, является ли аргумент функции idx объектом cdata.

Параметры:

  • L (lua_State*) — состояние Lua

  • idx (int) — индекс стека

  • ctypeid (uint32_t*) — выходной аргумент. CTypeID возвращаемого cdata из FFI

Возвращает

память, связанную с этим cdata

См. также: luaL_pushcdata()

void luaL_setcdatagc(struct lua_State *L, int idx)

Установить функцию-финализатор для объекта cdata.

Эквивалентно вызову ffi.gc(obj, function). Функция-финализатор должна находиться на вершине стека.

Параметры:

  • L (lua_State*) — состояние Lua

  • idx (int) — индекс стека

uint32_t luaL_ctypeid(struct lua_State *L, const char *ctypename)

Вернуть CTypeID (FFI) заданного типа СDATA.

Параметры:

  • L (lua_State*) — состояние Lua

  • ctypename (const char*) — имя типа C в виде строки (например, "struct request" или "uint32_t")

Возвращает

CTypeID

См. также: luaL_pushcdata(), luaL_checkcdata()

int luaL_cdef(struct lua_State *L, const char *ctypename)

Объявить символы для FFI.

Параметры:

  • L (lua_State*) — состояние Lua

  • ctypename (const char*) — определения C (например, "struct stat")

Возвращает

0 в случае успеха

Возвращает

LUA_ERRRUN, LUA_ERRMEM или LUA_ERRERR в противном случае.

См. также: ffi.cdef(def)

void luaL_pushuint64(struct lua_State *L, uint64_t val)

Поместить uint64_t в стек.

Параметры:

  • L (lua_State*) — состояние Lua

  • val (uint64_t) — значение для помещения в стек

void luaL_pushint64(struct lua_State *L, int64_t val)

Поместить int64_t в стек.

Параметры:

  • L (lua_State*) — состояние Lua

  • val (int64_t) — значение для помещения в стек

uint64_t luaL_checkuint64(struct lua_State *L, int idx)

Проверить, является ли аргумент idx значением uint64 или строкой, допускающей преобразование, и вернуть это число.

Показывает ошибку, если аргумент не может быть преобразован.

uint64_t luaL_checkint64(struct lua_State *L, int idx)

Проверить, является ли аргумент idx значением int64 или строкой, допускающей преобразование, и вернуть это число.

Показывает ошибку, если аргумент не может быть преобразован.

uint64_t luaL_touint64(struct lua_State *L, int idx)

Проверить, является ли аргумент idx значением uint64 или строкой, допускающей преобразование, и вернуть это число.

Возвращает

преобразованное число или 0, если аргумент не может быть преобразован

int64_t luaL_toint64(struct lua_State *L, int idx)

Проверить, является ли аргумент idx значением int64 или строкой, допускающей преобразование, и вернуть это число.

Возвращает

преобразованное число или 0, если аргумент не может быть преобразован

void luaT_pushtuple(struct lua_State *L, box_tuple_t *tuple)

Поместить кортеж в стек.

Параметры:

  • L (lua_State*) — состояние Lua

Показывает ошибку при нехватке памяти (OOM).

См. также: luaT_istuple

box_tuple_t *luaT_istuple(struct lua_State *L, int idx)

Проверить, является ли idx кортежем.

Параметры:

  • L (lua_State*) — состояние Lua

  • idx (int) — индекс стека

Возвращает

не NULL, если idx — кортеж

Возвращает

NULL, если idx не является кортежем

int luaT_error(lua_State *L)

Повторно выбросить последнюю ошибку Tarantool в виде объекта Lua.

См. также: lua_error(), box_error_last().

int luaT_cpcall(lua_State *L, lua_CFunction func, void *ud)

Аналогично lua_cpcall(), но с корректной поддержкой ошибок Tarantool.

lua_State *luaT_state(void)

Получить глобальное состояние Lua, используемое Tarantool.