我的代码当前传递了很多(有时是嵌套的)C(或 C++ 普通旧数据)结构和数组。
我想将这些转换为/从谷歌 protobufs 转换。我可以手动编写在这两种格式之间转换的代码,但自动生成这样的代码不太容易出错。做这个的最好方式是什么?(这在具有足够内省以迭代成员变量名称的语言中很容易,但这是我们正在谈论的 C++ 代码)
我正在考虑的一件事是编写解析 C 结构然后输出 .proto 文件的 python 代码,以及从成员到成员(在任一方向)复制所有类型的 C 代码,但也许有一个更好的方法......或者也许已经可以生成另一个 IDL:
- .h 文件包含所有嵌套类型
- .proto 文件包含等价物
- .c 文件,其中包含在 .proto 文件生成的 C++ 结构和 .h 文件中定义的结构之间复制任一方向的函数