Как вы говорите в 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)
}

Ответы на вопрос(1)

Ваш ответ на вопрос