Как вы говорите в Thrift IDL, что клиент должен включать в структуру ровно одно из набора полей?
Предположим, я определил структуру в файле Apache Thrift IDL, который содержит два поля. Например:
struct Thing {
1: optional string name,
2: optional i32 size
}
Это означает, что клиент может предоставить объект Thing без полей, имени, размера или имени и размера. Но что, если я хочу, чтобы объект Thing имелили имяили же размер (эксклюзив или)? На данный момент я должен использовать свой код реализации для защиты от клиента, предоставляющего Thing без полей или обоих полей; а также документ / комментарий, как клиент должен указать объект Thing.
Короче говоря, если кто-то определяет структуру, содержащую различные поля, можно ли выразитьв самой IDL что ты только хочешьровно один из этих полей должны быть предоставлены в клиенте? (Я'используя Apache Thrift 0.9.0.) Было бы здорово, если бы вы сказали что-то вроде следующего (| = или):
struct Thing {
1: required (string name | i32 size)
}