--- /dev/null
+import "google/protobuf/descriptor.proto";\r
+\r
+extend google.protobuf.FileOptions {\r
+ optional string my_file_option = 50000;\r
+}\r
+extend google.protobuf.MessageOptions {\r
+ optional int32 my_message_option = 50001;\r
+}\r
+extend google.protobuf.FieldOptions {\r
+ optional float my_field_option = 50002;\r
+}\r
+extend google.protobuf.EnumOptions {\r
+ optional bool my_enum_option = 50003;\r
+}\r
+extend google.protobuf.EnumValueOptions {\r
+ optional uint32 my_enum_value_option = 50004;\r
+}\r
+extend google.protobuf.ServiceOptions {\r
+ optional MyEnum my_service_option = 50005;\r
+}\r
+extend google.protobuf.MethodOptions {\r
+ optional MyMessage my_method_option = 50006;\r
+}\r
+\r
+option (my_file_option) = "Hello world!";\r
+\r
+message MyMessage {\r
+ option (my_message_option) = 1234;\r
+\r
+ optional int32 foo = 1 [(my_field_option) = 4.5];\r
+ optional string bar = 2;\r
+}\r
+\r
+enum MyEnum {\r
+ option (my_enum_option) = true;\r
+\r
+ FOO = 1 [(my_enum_value_option) = 321];\r
+ BAR = 2;\r
+}\r
+\r
+message RequestType {}\r
+message ResponseType {}\r
+\r
+service MyService {\r
+ option (my_service_option) = FOO;\r
+\r
+ rpc MyMethod(RequestType) returns(ResponseType) {\r
+ // Note: my_method_option has type MyMessage. We can set each field\r
+ // within it using a separate "option" line.\r
+ option (my_method_option).foo = 567;\r
+ option (my_method_option).bar = "Some string";\r
+ }\r
+}\r