Home | History | Annotate | Download | only in pyext
      1 // Protocol Buffers - Google's data interchange format
      2 // Copyright 2008 Google Inc.  All rights reserved.
      3 // https://developers.google.com/protocol-buffers/
      4 //
      5 // Redistribution and use in source and binary forms, with or without
      6 // modification, are permitted provided that the following conditions are
      7 // met:
      8 //
      9 //     * Redistributions of source code must retain the above copyright
     10 // notice, this list of conditions and the following disclaimer.
     11 //     * Redistributions in binary form must reproduce the above
     12 // copyright notice, this list of conditions and the following disclaimer
     13 // in the documentation and/or other materials provided with the
     14 // distribution.
     15 //     * Neither the name of Google Inc. nor the names of its
     16 // contributors may be used to endorse or promote products derived from
     17 // this software without specific prior written permission.
     18 //
     19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     20 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     21 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     22 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     23 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     24 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     30 
     31 // Author: tibell (a] google.com (Johan Tibell)
     32 //
     33 // These message definitions are used to exercises known corner cases
     34 // in the C++ implementation of the Python API.
     35 
     36 syntax = "proto2";
     37 
     38 package google.protobuf.python.internal;
     39 
     40 // Protos optimized for SPEED use a strict superset of the generated code
     41 // of equivalent ones optimized for CODE_SIZE, so we should optimize all our
     42 // tests for speed unless explicitly testing code size optimization.
     43 option optimize_for = SPEED;
     44 
     45 message TestAllTypes {
     46   message NestedMessage {
     47     optional int32 bb = 1;
     48     optional ForeignMessage cc = 2;
     49   }
     50 
     51   repeated NestedMessage repeated_nested_message = 1;
     52   optional NestedMessage optional_nested_message = 2;
     53   optional int32 optional_int32 = 3;
     54 }
     55 
     56 message ForeignMessage {
     57   optional int32 c = 1;
     58   repeated int32 d = 2;
     59 }
     60 
     61 message TestAllExtensions {
     62   extensions 1 to max;
     63 }
     64 
     65 extend TestAllExtensions {
     66   optional TestAllTypes.NestedMessage optional_nested_message_extension = 1;
     67   repeated TestAllTypes.NestedMessage repeated_nested_message_extension = 2;
     68 }
     69