将嵌套的 C 结构体映射到 Lua 中,就像 SWIG 一样

假设我有这样的 C 结构体:

typedef struct {
   int id;
   struct {
      int num1;
      int num2;
   }numbers;
}test_t;

由于 SWIG 包装器,我可以在 Lua 中这样使用它:

test1.number.num1 = 5

它工作得很好,但生成的代码太重了(这个例子有 3000 行)。我将在嵌入式环境中运行它。所以我想以更简单的方式自己实现它。

我知道 SWIG 使用类和元表来做到这一点。有人可以解释和/或展示如何简单地做到这一点吗?

点赞