Я изучаю языки схемы протокола, и кажется, что Cap'n'proto удовлетворит мои потребности, но есть одна важная функция, которая мне нужна, которую я не могу найти в документации:
Допустим, я есть ли у этого тегового объединения два члена структуры с C -подобным синтаксисом:
struct taggedUnion {
int tag;
union {
struct a {
int x;
}
struct b {
float x;
}
}
}
Могу ли я в будущем добавить еще одну структуру к теговому объединению, сохраняя при этом возможность чтения старых данных?
struct taggedUnion {
int tag;
union {
struct a {
int x;
}
struct b {
float y;
}
struct c {
int z;
bool b;
}
}
}
Такое чувство, что это должно быть выполнимо, но я не могу найти ничего в документах, говорящих, что это так. Есть примечание о том, что группы можно расширять, не нарушая совместимость проводов (новые поля обнуляются для старых данных).
Если это возможно, как бы я объявил об этом изменении в синтаксисе cap'n proto-схемы? Пример до / после был бы великолепен!