xref: /aosp_15_r20/external/flatbuffers/tests/prototest/test.proto (revision 890232f25432b36107d06881e0a25aaa6b473652)
1*890232f2SAndroid Build Coastguard Worker// Sample .proto file that we can translate to the corresponding .fbs.
2*890232f2SAndroid Build Coastguard Worker
3*890232f2SAndroid Build Coastguard Workeroption some_option = is_ignored;
4*890232f2SAndroid Build Coastguard Workerimport "imported.proto";
5*890232f2SAndroid Build Coastguard Worker
6*890232f2SAndroid Build Coastguard Workerpackage proto.test;
7*890232f2SAndroid Build Coastguard Worker
8*890232f2SAndroid Build Coastguard Worker/// Enum doc comment.
9*890232f2SAndroid Build Coastguard Workerenum ProtoEnum {
10*890232f2SAndroid Build Coastguard Worker  option allow_alias = true;
11*890232f2SAndroid Build Coastguard Worker  NUL = 0;
12*890232f2SAndroid Build Coastguard Worker  FOO = 1;
13*890232f2SAndroid Build Coastguard Worker  /// Enum 2nd value doc comment misaligned.
14*890232f2SAndroid Build Coastguard Worker  BAR = 5;
15*890232f2SAndroid Build Coastguard Worker  // Aliases
16*890232f2SAndroid Build Coastguard Worker  FOO_A1 = 1;
17*890232f2SAndroid Build Coastguard Worker  BAR_A1 = 5;
18*890232f2SAndroid Build Coastguard Worker  FOO_A2 = 1;
19*890232f2SAndroid Build Coastguard Worker}
20*890232f2SAndroid Build Coastguard Worker
21*890232f2SAndroid Build Coastguard Worker/// 2nd table doc comment with
22*890232f2SAndroid Build Coastguard Worker/// many lines.
23*890232f2SAndroid Build Coastguard Workermessage ProtoMessage {
24*890232f2SAndroid Build Coastguard Worker  // Ignored non-doc comment.
25*890232f2SAndroid Build Coastguard Worker  // A nested message declaration, will be moved to top level in .fbs
26*890232f2SAndroid Build Coastguard Worker  message OtherMessage {
27*890232f2SAndroid Build Coastguard Worker    optional double a = 26;
28*890232f2SAndroid Build Coastguard Worker    /// doc comment for b.
29*890232f2SAndroid Build Coastguard Worker    optional float b = 32 [default = 3.14149];
30*890232f2SAndroid Build Coastguard Worker
31*890232f2SAndroid Build Coastguard Worker    // Nested enum that aliases the outer one.
32*890232f2SAndroid Build Coastguard Worker    enum ProtoEnum {
33*890232f2SAndroid Build Coastguard Worker      NUL = 0;
34*890232f2SAndroid Build Coastguard Worker      FOO = 1;
35*890232f2SAndroid Build Coastguard Worker      BAR = 2;
36*890232f2SAndroid Build Coastguard Worker      BAZ = 3;
37*890232f2SAndroid Build Coastguard Worker    }
38*890232f2SAndroid Build Coastguard Worker
39*890232f2SAndroid Build Coastguard Worker    optional ProtoEnum foo_bar_baz = 33;
40*890232f2SAndroid Build Coastguard Worker  }
41*890232f2SAndroid Build Coastguard Worker  optional int32 c = 12 [default = 16];
42*890232f2SAndroid Build Coastguard Worker  optional int64 d = 1 [default = 0];
43*890232f2SAndroid Build Coastguard Worker  optional uint32 p = 1;
44*890232f2SAndroid Build Coastguard Worker  optional uint64 e = 2;
45*890232f2SAndroid Build Coastguard Worker  /// doc comment for f.
46*890232f2SAndroid Build Coastguard Worker  optional sint32 f = 3 [default = -1];
47*890232f2SAndroid Build Coastguard Worker  optional sint64 g = 4;
48*890232f2SAndroid Build Coastguard Worker  optional fixed32 h = 5;
49*890232f2SAndroid Build Coastguard Worker  optional fixed64 q = 6;
50*890232f2SAndroid Build Coastguard Worker  optional sfixed32 i = 7;
51*890232f2SAndroid Build Coastguard Worker  optional sfixed64 j = 8;
52*890232f2SAndroid Build Coastguard Worker  /// doc comment for k.
53*890232f2SAndroid Build Coastguard Worker  optional bool k = 9;
54*890232f2SAndroid Build Coastguard Worker  /// doc comment for l on 2
55*890232f2SAndroid Build Coastguard Worker  /// lines
56*890232f2SAndroid Build Coastguard Worker  required string l = 10;
57*890232f2SAndroid Build Coastguard Worker  optional bytes m = 11;
58*890232f2SAndroid Build Coastguard Worker  optional OtherMessage n = 12;
59*890232f2SAndroid Build Coastguard Worker  repeated string o = 14;
60*890232f2SAndroid Build Coastguard Worker  optional ImportedMessage z = 16;
61*890232f2SAndroid Build Coastguard Worker  /// doc comment for r.
62*890232f2SAndroid Build Coastguard Worker  oneof r {
63*890232f2SAndroid Build Coastguard Worker    /// doc comment for s.
64*890232f2SAndroid Build Coastguard Worker    ImportedMessage s = 17;
65*890232f2SAndroid Build Coastguard Worker    /// doc comment for t on 2
66*890232f2SAndroid Build Coastguard Worker    /// lines.
67*890232f2SAndroid Build Coastguard Worker    OtherMessage t = 18;
68*890232f2SAndroid Build Coastguard Worker  }
69*890232f2SAndroid Build Coastguard Worker  optional ProtoEnum outer_enum = 33;
70*890232f2SAndroid Build Coastguard Worker  // Tests that `inf` and `+/-inf` can be parsed in proto options.
71*890232f2SAndroid Build Coastguard Worker  optional float u = 34 [default = inf];
72*890232f2SAndroid Build Coastguard Worker  optional float v = 35 [default = +inf];
73*890232f2SAndroid Build Coastguard Worker  optional float w = 36 [default = -inf];
74*890232f2SAndroid Build Coastguard Worker}
75