1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
<Normal Text>syntax </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"proto2"</String><Separator Symbol>;</Separator Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>package</Keyword><Normal Text> example</Normal Text><Separator Symbol>;</Separator Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>message</Keyword><Normal Text> Object </Normal Text><Block Symbol>{</Block Symbol><br/>
<Normal Text> </Normal Text><Keyword>required</Keyword><Normal Text> </Normal Text><Data Type>string</Data Type><Normal Text> name </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>1</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> </Normal Text><Keyword>required</Keyword><Normal Text> </Normal Text><Data Type>int32</Data Type><Normal Text> identifier </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>2</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> </Normal Text><Keyword>optional</Keyword><Normal Text> </Normal Text><Data Type>string</Data Type><Normal Text> address </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>3</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text></Normal Text><br/>
<Normal Text> </Normal Text><Keyword>enum</Keyword><Normal Text> ObjectType </Normal Text><Block Symbol>{</Block Symbol><br/>
<Normal Text> LOCAL </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>0</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> REMOTE </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>1</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> NEITHER </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>2</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> </Normal Text><Keyword>default</Keyword><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>3</Decimal><Separator Symbol>;</Separator Symbol><Normal Text> </Normal Text><Comment>// no keyword</Comment><br/>
<Normal Text> </Normal Text><Block Symbol>}</Block Symbol><br/>
<Normal Text></Normal Text><br/>
<Normal Text> </Normal Text><Keyword>message</Keyword><Normal Text> ObjectData </Normal Text><Block Symbol>{</Block Symbol><br/>
<Normal Text> </Normal Text><Keyword>required</Keyword><Normal Text> </Normal Text><Data Type>string</Data Type><Normal Text> number </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>1</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> </Normal Text><Keyword>optional</Keyword><Normal Text> ObjectType type </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>2</Decimal><Normal Text> </Normal Text><Block Symbol>[</Block Symbol><Keyword>default</Keyword><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> NEITHER</Normal Text><Block Symbol>]</Block Symbol><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> </Normal Text><Keyword>optional</Keyword><Normal Text> ObjectType other </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>3</Decimal><Normal Text> </Normal Text><Block Symbol>[</Block Symbol><Keyword>default</Keyword><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Keyword>default</Keyword><Block Symbol>]</Block Symbol><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> </Normal Text><Comment>// ^ no keyword</Comment><br/>
<Normal Text> </Normal Text><Block Symbol>}</Block Symbol><br/>
<Normal Text></Normal Text><br/>
<Normal Text> </Normal Text><Keyword>repeated</Keyword><Normal Text> ObjectData dataList </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>4</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text></Normal Text><br/>
<Normal Text> </Normal Text><Data Type>string</Data Type><Normal Text> </Normal Text><Data Type>string</Data Type><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>5</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> </Normal Text><Comment>// ^ no data type</Comment><br/>
<Normal Text> </Normal Text><Data Type>string</Data Type><Normal Text> </Normal Text><Keyword>default</Keyword><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>5</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> </Normal Text><Comment>// ^ no keyword</Comment><br/>
<Block Symbol>}</Block Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>message</Keyword><Normal Text> ObjectList </Normal Text><Block Symbol>{</Block Symbol><br/>
<Normal Text> </Normal Text><Keyword>repeated</Keyword><Normal Text> Object object </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>1</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Block Symbol>}</Block Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>enum</Keyword><Normal Text> EnumAllowingAlias </Normal Text><Block Symbol>{</Block Symbol><br/>
<Normal Text> </Normal Text><Keyword>option</Keyword><Normal Text> allow_alias </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Keyword>true</Keyword><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> EAA_UNSPECIFIED </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>0</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> EAA_STARTED </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>1</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> EAA_RUNNING </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>1</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> EAA_FINISHED </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>2</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Block Symbol>}</Block Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>message</Keyword><Normal Text> SomeOtherMessage </Normal Text><Block Symbol>{</Block Symbol><br/>
<Normal Text> SearchResponse</Normal Text><Symbol>.</Symbol><Normal Text>Result result </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>1</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Block Symbol>}</Block Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>package</Keyword><Normal Text> media</Normal Text><Separator Symbol>;</Separator Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// A container message to hold stuff that a user has created.</Comment><br/>
<Keyword>message</Keyword><Normal Text> UserContent </Normal Text><Block Symbol>{</Block Symbol><br/>
<Normal Text> </Normal Text><Comment>// Set verification to `DECLARATION` to enforce extension declarations for all</Comment><br/>
<Normal Text> </Normal Text><Comment>// extensions in this range.</Comment><br/>
<Normal Text> </Normal Text><Keyword>extensions</Keyword><Normal Text> </Normal Text><Decimal>100</Decimal><Normal Text> to </Normal Text><Decimal>199</Decimal><Normal Text> </Normal Text><Block Symbol>[</Block Symbol><Normal Text>verification </Normal Text><Operator>=</Operator><Normal Text> DECLARATION</Normal Text><Block Symbol>]</Block Symbol><Separator Symbol>;</Separator Symbol><br/>
<Block Symbol>}</Block Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// A container message to hold stuff that a user has created.</Comment><br/>
<Keyword>message</Keyword><Normal Text> UserContent </Normal Text><Block Symbol>{</Block Symbol><br/>
<Normal Text> </Normal Text><Keyword>extensions</Keyword><Normal Text> </Normal Text><Decimal>100</Decimal><Normal Text> to </Normal Text><Decimal>199</Decimal><Normal Text> </Normal Text><Block Symbol>[</Block Symbol><br/>
<Normal Text> declaration </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Block Symbol>{</Block Symbol><br/>
<Normal Text> number</Normal Text><Operator>:</Operator><Normal Text> </Normal Text><Decimal>126</Decimal><Separator Symbol>,</Separator Symbol><br/>
<Normal Text> full_name</Normal Text><Operator>:</Operator><Normal Text> </Normal Text><String>".kittens.kitten_videos"</String><Separator Symbol>,</Separator Symbol><br/>
<Normal Text> type</Normal Text><Operator>:</Operator><Normal Text> </Normal Text><String>".kittens.Video"</String><Separator Symbol>,</Separator Symbol><br/>
<Normal Text> </Normal Text><Keyword>repeated</Keyword><Operator>:</Operator><Normal Text> </Normal Text><Keyword>true</Keyword><br/>
<Normal Text> </Normal Text><Block Symbol>}</Block Symbol><Separator Symbol>,</Separator Symbol><br/>
<Normal Text> </Normal Text><Comment>// Ensures all field numbers in this extension range are declarations.</Comment><br/>
<Normal Text> verification </Normal Text><Operator>=</Operator><Normal Text> DECLARATION</Normal Text><br/>
<Normal Text> </Normal Text><Block Symbol>]</Block Symbol><Separator Symbol>;</Separator Symbol><br/>
<Block Symbol>}</Block Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>service</Keyword><Normal Text> SearchService </Normal Text><Block Symbol>{</Block Symbol><br/>
<Normal Text> </Normal Text><Keyword>rpc</Keyword><Normal Text> Search</Normal Text><Symbol>(</Symbol><Normal Text>SearchRequest</Normal Text><Symbol>)</Symbol><Normal Text> </Normal Text><Keyword>returns</Keyword><Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>SearchResponse</Normal Text><Symbol>)</Symbol><Separator Symbol>;</Separator Symbol><br/>
<Block Symbol>}</Block Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>message</Keyword><Normal Text> RequestType </Normal Text><Block Symbol>{}</Block Symbol><br/>
<Keyword>message</Keyword><Normal Text> ResponseType </Normal Text><Block Symbol>{}</Block Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>service</Keyword><Normal Text> MyService </Normal Text><Block Symbol>{</Block Symbol><br/>
<Normal Text> </Normal Text><Keyword>option</Keyword><Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>my_service_option</Normal Text><Symbol>)</Symbol><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> FOO</Normal Text><Separator Symbol>;</Separator Symbol><br/>
<Normal Text></Normal Text><br/>
<Normal Text> </Normal Text><Keyword>rpc</Keyword><Normal Text> MyMethod</Normal Text><Symbol>(</Symbol><Normal Text>RequestType</Normal Text><Symbol>)</Symbol><Normal Text> </Normal Text><Keyword>returns</Keyword><Symbol>(</Symbol><Normal Text>ResponseType</Normal Text><Symbol>)</Symbol><Normal Text> </Normal Text><Block Symbol>{</Block Symbol><br/>
<Normal Text> </Normal Text><Comment>// Note: my_method_option has type MyMessage. We can set each field</Comment><br/>
<Normal Text> </Normal Text><Comment>// within it using a separate "option" line.</Comment><br/>
<Normal Text> </Normal Text><Keyword>option</Keyword><Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>my_method_option</Normal Text><Symbol>).</Symbol><Normal Text>foo </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>567</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> </Normal Text><Keyword>option</Keyword><Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>my_method_option</Normal Text><Symbol>).</Symbol><Normal Text>bar </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"Some string"</String><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> </Normal Text><Block Symbol>}</Block Symbol><br/>
<Block Symbol>}</Block Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>import</Keyword><Normal Text> </Normal Text><String>"google/protobuf/descriptor.proto"</String><Separator Symbol>;</Separator Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>extend</Keyword><Normal Text> google</Normal Text><Symbol>.</Symbol><Normal Text>protobuf</Normal Text><Symbol>.</Symbol><Normal Text>EnumValueOptions </Normal Text><Block Symbol>{</Block Symbol><br/>
<Normal Text> </Normal Text><Data Type>string</Data Type><Normal Text> string_name </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>123456789</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Block Symbol>}</Block Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>enum</Keyword><Normal Text> Data </Normal Text><Block Symbol>{</Block Symbol><br/>
<Normal Text> DATA_UNSPECIFIED </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>0</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> DATA_SEARCH </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>1</Decimal><Normal Text> </Normal Text><Block Symbol>[</Block Symbol><Normal Text>deprecated </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Keyword>true</Keyword><Block Symbol>]</Block Symbol><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> DATA_DISPLAY </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>2</Decimal><Normal Text> </Normal Text><Block Symbol>[</Block Symbol><br/>
<Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>string_name</Normal Text><Symbol>)</Symbol><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"x</String><String Char>\uafe2</String Char><String>3</String><String Char>\U00012345</String Char><String>6</String><String Char>\n</String Char><String>x</String><String Char>\x43</String Char><String>3</String><String Char>\xa</String Char><String>g</String><String Char>\012</String Char><String>3</String><Error>\u1</Error><String>xx</String><Error>\</Error><String>p</String><Error>\U0010a</Error><String>i"</String><br/>
<Normal Text> </Normal Text><Block Symbol>]</Block Symbol><Separator Symbol>;</Separator Symbol><br/>
<Block Symbol>}</Block Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>message</Keyword><Normal Text> Outer </Normal Text><Block Symbol>{</Block Symbol><br/>
<Normal Text> </Normal Text><Keyword>option</Keyword><Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>my_option</Normal Text><Symbol>).</Symbol><Normal Text>a </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Keyword>true</Keyword><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> </Normal Text><Keyword>message</Keyword><Normal Text> Inner </Normal Text><Block Symbol>{</Block Symbol><Normal Text> </Normal Text><Comment>// Level 2</Comment><br/>
<Normal Text> </Normal Text><Keyword>required</Keyword><Normal Text> </Normal Text><Data Type>int64</Data Type><Normal Text> ival </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>1</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> </Normal Text><Block Symbol>}</Block Symbol><br/>
<Normal Text> map</Normal Text><Block Symbol><</Block Symbol><Data Type>int32</Data Type><Separator Symbol>,</Separator Symbol><Normal Text> </Normal Text><Data Type>string</Data Type><Block Symbol>></Block Symbol><Normal Text> my_map </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Decimal>2</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> </Normal Text><Keyword>extensions</Keyword><Normal Text> </Normal Text><Decimal>20</Decimal><Normal Text> to </Normal Text><Decimal>30</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> </Normal Text><Data Type>float</Data Type><Normal Text> n </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Symbol>.</Symbol><Decimal>2</Decimal><Separator Symbol>;</Separator Symbol><br/>
<Normal Text> </Normal Text><Data Type>float</Data Type><Normal Text> n </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Float>inf</Float><Separator Symbol>;</Separator Symbol><br/>
<Block Symbol>}</Block Symbol><br/>
|