mirror of
https://github.com/hanzoai/protobuf.js.git
synced 2026-09-24 17:02:08 +00:00
146 lines
3.7 KiB
Protocol Buffer
146 lines
3.7 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
import "google/protobuf/descriptor.proto";
|
|
|
|
package test;
|
|
|
|
//Simple int32 based options (both single and repeated)
|
|
//for fields and messages
|
|
|
|
extend google.protobuf.FieldOptions {
|
|
repeated int32 fo_rep_int = 50000;
|
|
int32 fo_single_int = 50001;
|
|
}
|
|
|
|
extend google.protobuf.MessageOptions {
|
|
repeated int32 mo_rep_int = 50000;
|
|
int32 mo_single_int = 50001;
|
|
}
|
|
|
|
message TestFieldOptionsInt {
|
|
string field1 = 2 [(fo_rep_int) = 1, (fo_rep_int) = 2];
|
|
string field2 = 1 [(fo_single_int) = 3];
|
|
}
|
|
|
|
message TestMessageOptionsInt {
|
|
option (mo_rep_int) = 1;
|
|
option (mo_rep_int) = 2;
|
|
option (mo_single_int) = 3;
|
|
}
|
|
|
|
//Message based options including nested sub messages (both single and repeated)
|
|
//for fields and messages
|
|
|
|
message Msg {
|
|
int32 value = 1;
|
|
repeated int32 rep_value = 2;
|
|
SubMsg nested = 3;
|
|
repeated SubMsg rep_nested = 4;
|
|
}
|
|
|
|
message SubMsg {
|
|
string value = 1;
|
|
SubMsg nested = 2;
|
|
}
|
|
|
|
extend google.protobuf.FieldOptions {
|
|
repeated Msg fo_rep_msg = 50002;
|
|
Msg fo_single_msg = 50003;
|
|
}
|
|
|
|
extend google.protobuf.MessageOptions {
|
|
repeated Msg mo_rep_msg = 50002;
|
|
Msg mo_single_msg = 50003;
|
|
}
|
|
|
|
extend google.protobuf.MethodOptions {
|
|
repeated Msg method_rep_msg = 50002;
|
|
Msg method_single_msg = 50003;
|
|
}
|
|
|
|
message TestFieldOptionsMsg {
|
|
string field1 = 1 [(fo_rep_msg) = {value: 1 rep_value: 2 rep_value: 3}, (fo_rep_msg) = {value: 4 rep_value: 5 rep_value: 6}];
|
|
string field2 = 2 [(fo_single_msg).value = 7, (fo_single_msg).rep_value = 8, (fo_single_msg).rep_value = 9];
|
|
}
|
|
|
|
message TestMessageOptionsMsg {
|
|
option (mo_rep_msg) = {
|
|
value: 1
|
|
rep_value: 2
|
|
rep_value: 3
|
|
};
|
|
option (mo_rep_msg) = {
|
|
value: 4
|
|
rep_value: 5
|
|
rep_value: 6
|
|
};
|
|
option (mo_rep_msg) = {
|
|
value: 5
|
|
rep_value: [ 7, 8 ]
|
|
};
|
|
option (mo_single_msg).value = 7;
|
|
option (mo_single_msg).rep_value = 8;
|
|
option (mo_single_msg).rep_value = 9;
|
|
}
|
|
|
|
message TestFieldOptionsNested {
|
|
string field1 = 1 [(fo_rep_msg) = {value: 1 nested { nested {value: "x"} } rep_nested { value: "y"} rep_nested { value: "z" } rep_value: 3}, (fo_rep_msg) = { nested { value: "w" }}];
|
|
string field2 = 2 [(fo_single_msg).nested.value = "x", (fo_single_msg).rep_nested = {value : "x"}, (fo_single_msg).rep_nested = {value : "y"}];
|
|
string field3 = 3 [(fo_single_msg).nested = {value: "x" nested {nested{value: "y"}}}];
|
|
}
|
|
|
|
message TestMessageOptionsNested {
|
|
option (mo_rep_msg) = {
|
|
value: 1
|
|
nested {
|
|
nested {
|
|
value: "x"
|
|
}
|
|
}
|
|
rep_nested {
|
|
value: "y"
|
|
}
|
|
rep_nested {
|
|
value: "z"
|
|
}
|
|
rep_value: 3
|
|
};
|
|
option (mo_rep_msg) = {
|
|
nested {
|
|
value: "w"
|
|
}
|
|
};
|
|
option (mo_single_msg).nested.value = "x";
|
|
option (mo_single_msg).rep_nested = {value : "x" nested {nested{value: "y"}}};
|
|
option (mo_single_msg).rep_nested = {value : "y"};
|
|
}
|
|
|
|
service TestOptionsService {
|
|
rpc TestOptionsRpc(Msg) returns (Msg) {
|
|
option (method_rep_msg) = {
|
|
value: 1
|
|
empty_repeated: []
|
|
nested {
|
|
nested {
|
|
value: "x"
|
|
}
|
|
}
|
|
rep_nested {
|
|
value: "y"
|
|
}
|
|
rep_nested {
|
|
value: "z"
|
|
}
|
|
rep_value: 3
|
|
};
|
|
option (method_rep_msg) = {
|
|
nested {
|
|
value: "w"
|
|
}
|
|
};
|
|
option (method_single_msg).nested.value = "x";
|
|
option (method_single_msg).rep_nested = {value : "x" nested {nested{value: "y"}}};
|
|
option (method_single_msg).rep_nested = {value : "y"};
|
|
}
|
|
}
|