1/* Test the integer size overriding in nanopb options.
2 * This allows to use 8- and 16-bit integer variables, which are not supported
3 * directly by Google Protobuf.
4 *
5 * The int_size setting will override the number of bits, but keep the type
6 * otherwise. E.g. uint32 + IS_8 => uint8_t
7 */
8
9syntax = "proto2";
10
11import 'nanopb.proto';
12
13message IntSizes {
14    required int32  req_int8 =   1  [(nanopb).int_size = IS_8];
15    required uint32 req_uint8 =  2  [(nanopb).int_size = IS_8];
16    required sint32 req_sint8 =  3  [(nanopb).int_size = IS_8];
17    required int32  req_int16 =  4  [(nanopb).int_size = IS_16];
18    required uint32 req_uint16 = 5  [(nanopb).int_size = IS_16];
19    required sint32 req_sint16 = 6  [(nanopb).int_size = IS_16];
20    required int32  req_int32 =  7  [(nanopb).int_size = IS_32];
21    required uint32 req_uint32 = 8  [(nanopb).int_size = IS_32];
22    required sint32 req_sint32 = 9  [(nanopb).int_size = IS_32];
23    required int32  req_int64 =  10 [(nanopb).int_size = IS_64];
24    required uint32 req_uint64 = 11 [(nanopb).int_size = IS_64];
25    required sint32 req_sint64 = 12 [(nanopb).int_size = IS_64];
26}
27
28message DefaultSizes {
29    required int32  req_int8 =   1 ;
30    required uint32 req_uint8 =  2 ;
31    required sint32 req_sint8 =  3 ;
32    required int32  req_int16 =  4 ;
33    required uint32 req_uint16 = 5 ;
34    required sint32 req_sint16 = 6 ;
35    required int32  req_int32 =  7 ;
36    required uint32 req_uint32 = 8 ;
37    required sint32 req_sint32 = 9 ;
38    required int64  req_int64 =  10;
39    required uint64 req_uint64 = 11;
40    required sint64 req_sint64 = 12;
41}
42