blob: 614e6e6f0453c404981fcff31b7a49c5bc7beebd [file] [log] [blame]
// vim: noexpandtab
syntax = "proto3";
package descutil;
import "google/protobuf/descriptor.proto";
option go_package = "go.chromium.org/luci/common/proto/google/descutil;descutil";
message SuperExt {
string a = 1;
string b = 2;
}
extend google.protobuf.FieldOptions {
string ext = 50001;
SuperExt super_ext = 50002;
}
extend google.protobuf.MessageOptions {
string msgExt = 50001;
SuperExt super_msg_ext = 50002;
}
// Enum comment.
// next line.
enum E1 {
// V0
// next line.
V0 = 0;
// V1
// next line.
V1 = 1;
}
// M1
// next line.
message M1 {
// f1
// next line.
string f1 = 1 [
json_name = "foof",
(ext) = "narf",
(super_ext) = {
a: "a"
b: "b"
}
];
repeated int64 meep = 2 [
packed = false,
jstype = JS_NUMBER
];
bool regular_snake_case = 3;
bool only_json_name = 4 [json_name = "cool"];
}
// M2
// next line.
message M2 {
option deprecated = true;
option (msgExt) = "yep";
option (super_msg_ext) = {
a: "cool"
b: "beans"
};
// f1
// next line.
repeated M1 f1 = 1;
// f2
// next line.
E1 f2 = 2;
}
// M3
message M3 {
// O1
oneof O1 {
// f1
int32 f1 = 1;
// f2
int32 f2 = 2;
}
// O2
oneof O2 {
// f3
int32 f3 = 3;
// f4
int32 f4 = 4;
}
// f5
string f5 = 5;
// f6
int32 f6 = 6;
}
// S1
service S1 {
// R1
rpc R1(M1) returns (M2) {};
}
// S2
service S2 {
// R1
rpc R1(M1) returns (M2) {};
// R2
rpc R2(M1) returns (M2) {};
}
message NestedMessageParent {
message NestedMessage {
int32 f1 = 1;
int32 f2 = 2;
}
enum NestedEnum {
V0 = 0;
V1 = 1;
}
}
message ReservedRangeContainer {
reserved "hello";
reserved "world";
reserved 1;
reserved 2;
}