pcsx-redux/third_party/ffi-reflect
Nicolas "Pixel" Noble 1e279541d8 More Lua cleanup.
2022-03-10 17:44:36 -08:00
..
api.html Adding some more raw-lua dependencies. 2022-03-09 21:24:41 -08:00
default.css Adding some more raw-lua dependencies. 2022-03-09 21:24:41 -08:00
README.md Adding some more raw-lua dependencies. 2022-03-09 21:24:41 -08:00
reflect.lua More Lua cleanup. 2022-03-10 17:44:36 -08:00
test.lua Adding some more raw-lua dependencies. 2022-03-09 21:24:41 -08:00

Taken and adapted from https://github.com/corsix/ffi-reflect.

LuaJIT FFI reflection library

Quick examples:

local ffi = require "ffi"
local reflect = require "reflect"

ffi.cdef 'int sc(const char*, const char*) __asm__("strcmp");'
print(reflect.typeof(ffi.C.sc).sym_name) --> "strcmp"

for refct in reflect.typeof"int(*)(int x, int y)".element_type:arguments() do
  print(refct.name)
end --> x, y

t = {}
assert(reflect.getmetatable(ffi.metatype("struct {}", t)) == t)

For the full API reference, see http://corsix.github.io/ffi-reflect/.