|
|
|
syntax = "proto2";
|
|
|
|
|
|
|
|
package protobuf_unittest_extra;
|
|
|
|
|
|
|
|
option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
|
|
|
|
option optimize_for = CODE_SIZE;
|
|
|
|
option java_package = "com.google.protobuf";
|
|
|
|
|
|
|
|
message TestInteropPerson {
|
|
|
|
required string name = 1;
|
|
|
|
required int32 id = 2;
|
|
|
|
optional string email = 3;
|
|
|
|
repeated int32 codes = 10 [packed=true];
|
|
|
|
|
|
|
|
enum PhoneType {
|
|
|
|
MOBILE = 0;
|
|
|
|
HOME = 1;
|
|
|
|
WORK = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
message PhoneNumber {
|
|
|
|
required string number = 1;
|
|
|
|
optional PhoneType type = 2 [default = HOME];
|
|
|
|
}
|
|
|
|
|
|
|
|
repeated PhoneNumber phone = 4;
|
|
|
|
|
|
|
|
repeated group Addresses = 5 {
|
|
|
|
required string address = 1;
|
|
|
|
optional string address2 = 2;
|
|
|
|
required string city = 3;
|
|
|
|
required string state = 4;
|
|
|
|
required fixed32 zip = 5;
|
|
|
|
}
|
|
|
|
|
|
|
|
extensions 100 to 199;
|
|
|
|
}
|
|
|
|
|
|
|
|
message TestInteropEmployeeId {
|
|
|
|
required string number = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
extend TestInteropPerson {
|
|
|
|
// Note: changed from required to optional, as required fields are not
|
|
|
|
// permitted in extensions. (The fact that this was allowed in protogen
|
|
|
|
// before was almost certainly a bug.)
|
|
|
|
optional TestInteropEmployeeId employee_id = 126;
|
|
|
|
}
|
|
|
|
|
|
|
|
message TestMissingFieldsA {
|
|
|
|
required string name = 1;
|
|
|
|
required int32 id = 2;
|
|
|
|
optional string email = 3;
|
|
|
|
|
|
|
|
message SubA {
|
|
|
|
required int32 count = 5;
|
|
|
|
repeated string values = 6;
|
|
|
|
}
|
|
|
|
optional SubA testA = 11;
|
|
|
|
}
|
|
|
|
|
|
|
|
message TestMissingFieldsB {
|
|
|
|
required string name = 1;
|
|
|
|
required int32 id = 2;
|
|
|
|
optional string website = 4;
|
|
|
|
|
|
|
|
message SubB {
|
|
|
|
repeated string values = 7;
|
|
|
|
}
|
|
|
|
optional SubB testB = 12;
|
|
|
|
}
|