web-dev-qa-db-fra.com

Importation et utilisation de différents fichiers de package dans protobuf?

J'ai importé un autre prototype dont le nom de package est différent du mien. Pour l'utilisation des messages d'un autre package, accédez à ce message avec le nom du package.

Par exemple :

other.proto

package muthu.other;

message Other{
   required float val = 1;
}

myproto.proto

package muthu.test;

import "other.proto";

message MyProto{
  required string str = 1;
  optional muthu.other.Other.val = 2;
}

Existe-t-il un moyen d'utiliser val of muthu.other package directement comme facultatif val = 2; au lieu d'utiliser muthu.other .Other.val?

Impossible de trouver un document d'aide à ce sujet. Aide moi.

12
Muthurathinam

Si le nom du package est le même, vous pouvez omettre le nom du package dans la déclaration de champ mais sinon il n'y a pas d'autre moyen. si vous pouvez inclure muthu.test dans le même package en spécifiant "package muthu.other", cela est autorisé.

De la documentation Google de protobuf:

Vous pouvez ajouter un spécificateur de package facultatif à un fichier .proto pour éviter les conflits de noms entre les types de messages de protocole.

package foo.bar;
message Open { ... }

Vous pouvez ensuite utiliser le spécificateur de package lors de la définition des champs de votre type de message:

message Foo {
  ...
  required foo.bar.Open open = 1;
  ...
}
10
Ajay Mishra