From c8ff82b386a4d0f9c67ead994a216e0cb5292dea Mon Sep 17 00:00:00 2001
From: carsakiller <carsakiller@gmail.com>
Date: Fri, 27 Oct 2023 20:42:09 -0400
Subject: [PATCH] refactor: replace ffi-reflect with LuaCATS submodule

---
 .gitmodules                              |   3 +
 meta/3rd/ffi-reflect                     |   1 +
 meta/3rd/ffi-reflect/config.json         |   3 -
 meta/3rd/ffi-reflect/library/reflect.lua | 128 -----------------------
 4 files changed, 4 insertions(+), 131 deletions(-)
 create mode 160000 meta/3rd/ffi-reflect
 delete mode 100644 meta/3rd/ffi-reflect/config.json
 delete mode 100644 meta/3rd/ffi-reflect/library/reflect.lua

diff --git a/.gitmodules b/.gitmodules
index 618679048..37990df7a 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -55,3 +55,6 @@
 [submodule "meta/3rd/skynet"]
 	path = meta/3rd/skynet
 	url = https://github.com/LuaCATS/skynet.git
+[submodule "meta/3rd/ffi-reflect"]
+	path = meta/3rd/ffi-reflect
+	url = git@github.com:LuaCATS/ffi-reflect.git
diff --git a/meta/3rd/ffi-reflect b/meta/3rd/ffi-reflect
new file mode 160000
index 000000000..e9037efca
--- /dev/null
+++ b/meta/3rd/ffi-reflect
@@ -0,0 +1 @@
+Subproject commit e9037efca4021a15552b281f5e91418afd370d8f
diff --git a/meta/3rd/ffi-reflect/config.json b/meta/3rd/ffi-reflect/config.json
deleted file mode 100644
index 544b7b4dd..000000000
--- a/meta/3rd/ffi-reflect/config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-    
-}
\ No newline at end of file
diff --git a/meta/3rd/ffi-reflect/library/reflect.lua b/meta/3rd/ffi-reflect/library/reflect.lua
deleted file mode 100644
index 8a9b759c2..000000000
--- a/meta/3rd/ffi-reflect/library/reflect.lua
+++ /dev/null
@@ -1,128 +0,0 @@
----@meta
-
----@alias ffi.typeinfo.what "int"
----|"void"
----|"float"
----|"enum"
----|"constant"
----|"ptr"
----|"ref"
----|"array"
----|"struct"
----|"union"
----|"func"
----|"field"
----|"bitfield"
----|"typedef"
-
----@class ffi.typeinfo
----@field what ffi.typeinfo.what
-
----@class ffi.enuminfo : ffi.typeinfo
----@field name string?
----@field size number|string
----@field alignment number
----@field type ffi.typeinfo
-local enuminfo = {}
-
----@return ffi.constantinfo[]
-function enuminfo:values()
-end
-
----@return ffi.constantinfo
-function enuminfo:value(name_or_index)
-end
-
----@class ffi.funcinfo : ffi.typeinfo
----@field name string?
----@field sym_name string?
----@field return_type ffi.funcinfo
----@field nargs integer
----@field vararg boolean
----@field sse_reg_params boolean
----@field convention "cdecl"|"thiscall"|"fastcall"|"stdcall"
-local funcinfo = {}
-
----@return ffi.fieldinfo[]
-function funcinfo:arguments()
-end
-
----@return ffi.fieldinfo
-function funcinfo:argument(name_or_index)
-end
-
----@class ffi.unioninfo : ffi.typeinfo
----@field name string?
----@field size integer
----@field alignment number
----@field const boolean
----@field volatile boolean
----@field transparent boolean
-local unioninfo = {}
-
----@return ffi.typeinfo[]
-function unioninfo:members()
-end
-
----@return ffi.typeinfo
-function unioninfo:member(name_or_index)
-end
-
----@class ffi.structinfo : ffi.unioninfo
----@field vla boolean
-
----@class ffi.floatinfo : ffi.typeinfo
----@field size integer
----@field alignment number
----@field const boolean
----@field volatile boolean
-
----@alias ffi.voidinfo ffi.floatinfo
-
----@class ffi.intinfo : ffi.floatinfo
----@field bool boolean
----@field unsigned boolean
----@field long boolean
-
----@class ffi.constantinfo : ffi.typeinfo
----@field name string?
----@field type ffi.typeinfo
----@field value integer
-
----@class ffi.ptrinfo : ffi.typeinfo
----@field size integer
----@field alignment number
----@field const boolean
----@field volatile boolean
----@field element_type ffi.typeinfo
-
----@alias ffi.refinfo ffi.ptrinfo
-
----@class ffi.arrayinfo : ffi.ptrinfo
----@field vla boolean
----@field vector boolean
----@field complex boolean
-
----@class ffi.fieldinfo : ffi.typeinfo
----@field name string?
----@field offset number
----@field type ffi.typeinfo
-
----@class ffi.bitfield : ffi.fieldinfo
----@field size integer|string
-
-local reflect = {}
-
----reflection cdata c defined
----@param v ffi.cdata*
----@return ffi.typeinfo
-function reflect.typeof(v)
-end
-
----try get cdata metatable
----@param v ffi.cdata*
----@return table
-function reflect.getmetatable(v)
-end
-
-return reflect
\ No newline at end of file
-- 
GitLab