...

Text file src/google.golang.org/protobuf/internal/testprotos/textpb2/test.proto

Documentation: google.golang.org/protobuf/internal/testprotos/textpb2

     1// Copyright 2019 The Go Authors. All rights reserved.
     2// Use of this source code is governed by a BSD-style
     3// license that can be found in the LICENSE file.
     4
     5// Test Protobuf definitions with proto2 syntax.
     6syntax = "proto2";
     7
     8package pb2;
     9option go_package = "google.golang.org/protobuf/internal/testprotos/textpb2";
    10
    11import "google/protobuf/any.proto";
    12import "google/protobuf/empty.proto";
    13import "google/protobuf/field_mask.proto";
    14import "google/protobuf/duration.proto";
    15import "google/protobuf/struct.proto";
    16import "google/protobuf/timestamp.proto";
    17import "google/protobuf/wrappers.proto";
    18
    19// Scalars contains optional scalar fields.
    20message Scalars {
    21  optional bool opt_bool = 1;
    22  optional int32 opt_int32 = 2;
    23  optional int64 opt_int64 = 3;
    24  optional uint32 opt_uint32 = 4;
    25  optional uint64 opt_uint64 = 5;
    26  optional sint32 opt_sint32 = 6;
    27  optional sint64 opt_sint64 = 7;
    28  optional fixed32 opt_fixed32 = 8;
    29  optional fixed64 opt_fixed64 = 9;
    30  optional sfixed32 opt_sfixed32 = 10;
    31  optional sfixed64 opt_sfixed64 = 11;
    32
    33  // Textproto marshal outputs fields in the same order as this proto
    34  // definition regardless of field number. Following fields are intended to
    35  // test that assumption.
    36
    37  optional float opt_float = 20;
    38  optional double opt_double = 21;
    39
    40  optional bytes opt_bytes = 14;
    41  optional string opt_string = 13;
    42}
    43
    44enum Enum {
    45  ONE = 1;
    46  TWO = 2;
    47  TEN = 10;
    48}
    49
    50// Message contains enum fields.
    51message Enums {
    52  optional Enum opt_enum = 1;
    53  repeated Enum rpt_enum = 2;
    54
    55  enum NestedEnum {
    56	UNO = 1;
    57	DOS = 2;
    58	DIEZ = 10;
    59  }
    60  optional NestedEnum opt_nested_enum = 3;
    61  repeated NestedEnum rpt_nested_enum = 4;
    62}
    63
    64// Message contains repeated fields.
    65message Repeats {
    66  repeated bool rpt_bool = 1;
    67  repeated int32 rpt_int32 = 2;
    68  repeated int64 rpt_int64 = 3;
    69  repeated uint32 rpt_uint32 = 4;
    70  repeated uint64 rpt_uint64 = 5;
    71  repeated float rpt_float = 6;
    72  repeated double rpt_double = 7;
    73  repeated string rpt_string = 8;
    74  repeated bytes rpt_bytes = 9;
    75}
    76
    77// Message contains map fields.
    78message Maps {
    79  map<int32, string> int32_to_str = 1;
    80  map<string, Nested> str_to_nested = 4;
    81}
    82
    83// Message type used as submessage.
    84message Nested {
    85  optional string opt_string = 1;
    86  optional Nested opt_nested = 2;
    87}
    88
    89// Message contains message and group fields.
    90message Nests {
    91  optional Nested opt_nested = 1;
    92  optional group OptGroup = 2 {
    93    optional string opt_string = 1;
    94    optional Nested opt_nested = 2;
    95
    96    optional group OptNestedGroup = 3 {
    97      optional fixed32 opt_fixed32 = 1;
    98    }
    99  }
   100
   101  repeated Nested rpt_nested = 4;
   102  repeated group RptGroup = 5 {
   103    repeated string rpt_string = 1;
   104  }
   105
   106  reserved "reserved_field";
   107}
   108
   109// Message contains required fields.
   110message Requireds {
   111  required bool req_bool = 1;
   112  required sfixed64 req_sfixed64 = 2;
   113  required double req_double = 3;
   114  required string req_string = 4;
   115  required Enum req_enum = 5;
   116  required Nested req_nested = 6;
   117}
   118
   119// Message contains both required and optional fields.
   120message PartialRequired {
   121  required string req_string = 1;
   122  optional string opt_string = 2;
   123}
   124
   125// Following messages are for testing required field nested in optional, repeated and map fields.
   126
   127message NestedWithRequired {
   128  required string req_string = 1;
   129}
   130
   131message IndirectRequired {
   132  optional NestedWithRequired opt_nested = 1;
   133  repeated NestedWithRequired rpt_nested = 2;
   134  map<string, NestedWithRequired> str_to_nested = 3;
   135
   136  oneof union {
   137    NestedWithRequired oneof_nested = 4;
   138  }
   139}
   140
   141// Following messages are for testing extensions.
   142
   143message Extensions {
   144  optional string opt_string = 1;
   145  extensions 20 to 100;
   146  optional bool opt_bool = 101;
   147  optional int32 opt_int32 = 2;
   148}
   149
   150extend Extensions {
   151  optional bool opt_ext_bool = 21;
   152  optional string opt_ext_string = 22;
   153  optional Enum opt_ext_enum = 23;
   154  optional Nested opt_ext_nested = 24;
   155  optional PartialRequired opt_ext_partial = 25;
   156
   157  repeated fixed32 rpt_ext_fixed32 = 31;
   158  repeated Enum rpt_ext_enum = 32;
   159  repeated Nested rpt_ext_nested = 33;
   160}
   161
   162message ExtensionsContainer {
   163  extend Extensions {
   164    optional bool opt_ext_bool = 51;
   165    optional string opt_ext_string = 52;
   166    optional Enum opt_ext_enum = 53;
   167    optional Nested opt_ext_nested = 54;
   168    optional PartialRequired opt_ext_partial = 55;
   169
   170    repeated string rpt_ext_string = 61;
   171    repeated Enum rpt_ext_enum = 62;
   172    repeated Nested rpt_ext_nested = 63;
   173  }
   174}
   175
   176// Following messages are for testing MessageSet.
   177
   178message MessageSet {
   179  option message_set_wire_format = true;
   180
   181  extensions 4 to max;
   182}
   183
   184message MessageSetExtension {
   185  optional string opt_string = 1;
   186
   187  extend MessageSet {
   188    optional MessageSetExtension message_set_extension = 10;
   189    optional MessageSetExtension not_message_set_extension = 20;
   190    optional Nested ext_nested = 30;
   191  }
   192}
   193
   194message FakeMessageSet {
   195  extensions 4 to max;
   196}
   197
   198message FakeMessageSetExtension {
   199  optional string opt_string = 1;
   200
   201  extend FakeMessageSet {
   202    optional FakeMessageSetExtension message_set_extension = 10;
   203  }
   204}
   205
   206extend MessageSet {
   207  optional FakeMessageSetExtension message_set_extension = 50;
   208}
   209
   210// Message contains well-known type fields.
   211message KnownTypes {
   212  optional google.protobuf.BoolValue opt_bool = 1;
   213  optional google.protobuf.Int32Value opt_int32 = 2;
   214  optional google.protobuf.Int64Value opt_int64 = 3;
   215  optional google.protobuf.UInt32Value opt_uint32 = 4;
   216  optional google.protobuf.UInt64Value opt_uint64 = 5;
   217  optional google.protobuf.FloatValue opt_float = 6;
   218  optional google.protobuf.DoubleValue opt_double = 7;
   219  optional google.protobuf.StringValue opt_string = 8;
   220  optional google.protobuf.BytesValue opt_bytes = 9;
   221
   222  optional google.protobuf.Duration opt_duration = 20;
   223  optional google.protobuf.Timestamp opt_timestamp = 21;
   224
   225  optional google.protobuf.Struct opt_struct = 25;
   226  optional google.protobuf.ListValue opt_list = 26;
   227  optional google.protobuf.Value opt_value = 27;
   228  optional google.protobuf.NullValue opt_null = 28;
   229
   230  optional google.protobuf.Empty opt_empty = 30;
   231  optional google.protobuf.Any opt_any = 32;
   232
   233  optional google.protobuf.FieldMask opt_fieldmask = 40;
   234}

View as plain text