protobuf: определить отношения parentS <-> childrenS
Как определить отношения parentS <-> childrenS в прото
syntax = "proto3";
message Root {
repeated Category category = 2;
}
message Category {
string name = 2;
repeated Category parent = 3;
}
Ключевым моментом здесь является то, что я хочу иметь возможность вызывать детей
MamyCategoryInstance
|
|--- FooCategoryInstance
...//
PapaCategoryInstance
|
|---- FooCategoryInstance
|---- BarCategoryInstance
Спасибо
1 ответ
Ты не можешь. Буферы протокола - это сериализатор на основе дерева, а не сериализатор на основе графа. Таким образом, объекты имеют только одного семантического родителя, и это неявно, а не явно. Имея в виду:
message Root {
repeated Category category = 2;
}
message Category {
string name = 2;
}
Родитель каждой категории просто: какой узел был над ним в дереве. Если вы попытаетесь создать явное родительское отношение, сериализация не удастся из-за рекурсии.