【发布时间】:2013-09-26 05:12:00
【问题描述】:
假设我在一个包含两个字段的 Apache Thrift IDL 文件中定义了一个结构。例如:
struct Thing {
1: optional string name,
2: optional i32 size
}
这意味着客户端可以提供没有字段、名称、大小或名称和大小的事物对象。但是,如果我想要一个 Thing 对象具有 either 名称 或 大小(异或)怎么办?目前我必须使用我的实现代码来防止客户端提供没有字段或两个字段的事物;并记录/评论客户应如何指定事物对象。
简而言之,如果有人定义了一个包含各种字段的结构,是否可以在IDL 本身中表达您只希望只提供这些字段中的一个在客户端? (我使用的是 Apache Thrift 0.9.0。)如果您能说出类似以下内容(| = 或),那就太好了:
struct Thing {
1: required (string name | i32 size)
}
【问题讨论】:
标签: thrift