syntax = "proto2";

enum NonZeroBasedEnum {
    Two = 2;
    Three = 3;
    Four = 4;
}

message SubMessage {
    required string substuff1 = 1 [default = "1"];
    required int32 substuff2 = 2 [default = 2];
    optional fixed32 substuff3 = 12365535 [default = 3];
}

message EmptyMessage {

}

enum HugeEnum {
    Negative = -2147483647; /* protoc doesn't accept -2147483648 here */
    Positive =  2147483647;
}

message Limits {
    required int32      int32_min  =  1;
    required int32      int32_max  =  2;
    required uint32     uint32_min =  3;
    required uint32     uint32_max =  4;
    required int64      int64_min  =  5;
    required int64      int64_max  =  6;
    required uint64     uint64_min =  7;
    required uint64     uint64_max =  8;
    required HugeEnum   enum_min   =  9;
    required HugeEnum   enum_max   = 10;
    required int32      largetag   = 65535 [default = 0];
}

message IntSizes {
    required int32  req_int8 =   1 ;
    required uint32 req_uint8 =  2 ;
    required sint32 req_sint8 =  3 ;
    required int32  req_int16 =  4 ;
    required uint32 req_uint16 = 5 ;
    required sint32 req_sint16 = 6 ;
}

message DescriptorSize8 {
    required int32 first = 1;
    required int32 second = 22222;
}

enum MyEnum {
    Zero = 0;
    First = 1;
    Second = 2;
    Truth = 42;
}

message AllTypes {
    required int32      req_int32   = 1;
    required int64      req_int64   = 2;
    required uint32     req_uint32  = 3;
    required uint64     req_uint64  = 4;
    required sint32     req_sint32  = 5;
    required sint64     req_sint64  = 6;
    required bool       req_bool    = 7;
    
    required fixed32    req_fixed32 = 8;
    required sfixed32   req_sfixed32= 9;
    required float      req_float   = 10;
    
    required fixed64    req_fixed64 = 11;
    required sfixed64   req_sfixed64= 12;
    required double     req_double  = 13;
    
    required string     req_string  = 14;
    required bytes      req_bytes   = 15;
    required SubMessage req_submsg  = 16;
    required MyEnum     req_enum    = 17;
    required EmptyMessage req_emptymsg = 18;
    required bytes      req_fbytes  = 19;
    
    repeated int32      rep_int32   = 21;
    repeated int64      rep_int64   = 22;
    repeated uint32     rep_uint32  = 23;
    repeated uint64     rep_uint64  = 24;
    repeated sint32     rep_sint32  = 25;
    repeated sint64     rep_sint64  = 26;
    repeated bool       rep_bool    = 27;
    
    repeated fixed32    rep_fixed32 = 28;
    repeated sfixed32   rep_sfixed32= 29;
    repeated float      rep_float   = 30;
    
    repeated fixed64    rep_fixed64 = 10031;
    repeated sfixed64   rep_sfixed64= 10032;
    repeated double     rep_double  = 10033;
    
    repeated string     rep_string  = 10034;
    repeated bytes      rep_bytes   = 10035;
    repeated SubMessage rep_submsg  = 10036;
    repeated MyEnum     rep_enum    = 10037;
    repeated EmptyMessage rep_emptymsg = 10038;
    repeated bytes      rep_fbytes  = 10039;
    repeated int32      rep_farray  = 10040;
    
    optional int32      opt_int32   = 10041 [default = 4041];
    optional int64      opt_int64   = 10042 [default = 4042];
    optional uint32     opt_uint32  = 10043 [default = 4043];
    optional uint64     opt_uint64  = 10044 [default = 4044];
    optional sint32     opt_sint32  = 10045 [default = 4045];
    optional sint64     opt_sint64  = 10046 [default = 4046];
    optional bool       opt_bool    = 10047 [default = false];
    
    optional fixed32    opt_fixed32 = 10048 [default = 4048];
    optional sfixed32   opt_sfixed32= 10049 [default = 4049];
    optional float      opt_float   = 10050 [default = 4050];
    
    optional fixed64    opt_fixed64 = 10051 [default = 4051];
    optional sfixed64   opt_sfixed64= 10052 [default = 4052];
    optional double     opt_double  = 10053 [default = 4053];
    
    optional string     opt_string  = 10054 [default = "4054"];
    optional bytes      opt_bytes   = 10055 [default = "\x34\x5C\x00\xff"];
    optional SubMessage opt_submsg  = 10056;
    optional MyEnum     opt_enum    = 10057 [default = Second];
    optional EmptyMessage opt_emptymsg = 10058;
    optional bytes      opt_fbytes  = 10059 [default = "4059"];

    oneof oneof
    {
        SubMessage oneof_msg1 = 10060;
        EmptyMessage oneof_msg2 = 10061;
    }

    optional NonZeroBasedEnum opt_non_zero_based_enum = 10062;

    // Second fixed length array field to test the length check logic.
    repeated fixed32 rep_farray2 = 95 [packed = true];

    // Check support for custom integer sizes
    required IntSizes req_intsizes = 96;

    // Check support for 8-word descriptors
    required DescriptorSize8 req_ds8 = 97;

    // Check that extreme integer values are handled correctly
    required Limits     req_limits = 98;

    // Just to make sure that the size of the fields has been calculated
    // properly, i.e. otherwise a bug in last field might not be detected.
    required int32      end = 13432099;

    extensions 200 to 255;
}

