In some cases, especially when creating entity states, an ID field has a value which equals the value of a field of a nested message.
For example, in ProtoData, ProtobufSourceFile message has the ID field file_path, which has the same value as the path value of the nested File message contained in the file field:
message ProtobufSourceFile {
option (entity).kind = VIEW;
// The relative path to the file.
//
// Must be the same as `file.path`.
//
FilePath file_path = 1;
File file = 2;
...
}
A programmer has to remember this fact, and currently there's no way to guard him against an error. It would be more convenient to have a validation option, which ensures that field values are equal:
message ProtobufSourceFile {
option (entity).kind = VIEW;
// The relative path to the file.
//
// Must be the same as `file.path`.
//
FilePath file_path = 1 [(same_as) = "file.path");
File file = 2;
...
In some cases, especially when creating entity states, an ID field has a value which equals the value of a field of a nested message.
For example, in ProtoData,
ProtobufSourceFile
message has the ID fieldfile_path
, which has the same value as thepath
value of the nestedFile
message contained in thefile
field:A programmer has to remember this fact, and currently there's no way to guard him against an error. It would be more convenient to have a validation option, which ensures that field values are equal: