我的 Thrift 架构中有这样的内容:
struct TestStatusOne { .... }
struct TestStatusTwo { .... }
union TestStatus {
1: TestStatusOne ONE
2: TestStatusTwo TWO
}
struct TestResult {
1: required TestStatus status
}
我可以使用 Java、Perl 和 Python 库来定义这一点,但在使用 C++ 库时遇到了麻烦。这是Java中的示例:
TestResult testResult = new TestResult(
new TestStatus(TestStatus._Fields.findByName("ONE"), testStatus)
);
我最接近用 C++ 定义它的是:
TestResult testResult;
testResult.status.ONE = testStatus;
但是当我尝试发送到服务器时,我收到一个错误,告诉我状态字段不存在,并且结构的转储显示它为空。
如何设置测试状态?
使用节俭 0.6.1。