message protobuf contenant la référence à un autre message du même type

J’ai une structure de Player qui contient une liste de pointeurs vers ses plus proches voisins. La structure peut ressembler à ceci en C ++:

 struct Player { ssortingng handle; vector neighbors; }; 

Je veux utiliser protobuf pour sérialiser des instances de cette classe. Comment pourrais-je écrire une définition de message pour représenter la structure ci-dessus?

Il n’y a pas de concept de “référence” dans protobuf.

Par conséquent, le moyen le plus sain de le faire serait de:

 message Player {
   chaîne requirejse handle = 1;
   chaîne répété neighbourHandles = 2;
 };

Généralement, vous les convertissez ensuite en références C ++ lorsque vous avez terminé la désérialisation.

Je pense que cela ferait l’affaire

 message Player { required ssortingng handle = 1; repeated Player neighbors = 2; } 

J’ai compilé la définition avec protobuf-c et cela semble fonctionner.