/* Test the integer size overriding in nanopb options.
 * This allows to use 8- and 16-bit integer variables, which are not supported
 * directly by Google Protobuf.
 *
 * The int_size setting will override the number of bits, but keep the type
 * otherwise. E.g. uint32 + IS_8 => uint8_t
 */

syntax = "proto2";

import 'nanopb.proto';

message IntSizes {
    required int32  req_int8 =   1  [(nanopb).int_size = IS_8];
    required uint32 req_uint8 =  2  [(nanopb).int_size = IS_8];
    required sint32 req_sint8 =  3  [(nanopb).int_size = IS_8];
    required int32  req_int16 =  4  [(nanopb).int_size = IS_16];
    required uint32 req_uint16 = 5  [(nanopb).int_size = IS_16];
    required sint32 req_sint16 = 6  [(nanopb).int_size = IS_16];
    required int32  req_int32 =  7  [(nanopb).int_size = IS_32];
    required uint32 req_uint32 = 8  [(nanopb).int_size = IS_32];
    required sint32 req_sint32 = 9  [(nanopb).int_size = IS_32];
    required int32  req_int64 =  10 [(nanopb).int_size = IS_64];
    required uint32 req_uint64 = 11 [(nanopb).int_size = IS_64];
    required sint32 req_sint64 = 12 [(nanopb).int_size = IS_64];
}

message DefaultSizes {
    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 ;
    required int32  req_int32 =  7 ;
    required uint32 req_uint32 = 8 ;
    required sint32 req_sint32 = 9 ;
    required int64  req_int64 =  10;
    required uint64 req_uint64 = 11;
    required sint64 req_sint64 = 12;
}
