Oneof Type.
message AnExampleMessage {
oneof some_oneof_field {
int32 some_integer = 1;
string some_string = 2;
}
}
Assigning one field clears others
Enum Type.
enum AnEnum {
INITIAL = 0;
RED = 1;
BLUE = 2;
GREEN = 3;
WHATEVER = 8;
}
Must include zero
Any Type.
import "google/protobuf/any.proto";
message AnExampleMessage {
repeated google.protobuf.Any whatever = 8;
}
Internally a type identifier and a value
Type identifier is URI string
Value is byte buffer
Map Type.
message AnExampleMessage {
map<int32, string> keywords = 8;
}