aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pb.h4
-rw-r--r--pb_decode.c8
-rw-r--r--pb_encode.c4
-rw-r--r--tests/bc_alltypes.pb.c361
-rw-r--r--tests/bc_alltypes.pb.h39
5 files changed, 103 insertions, 313 deletions
diff --git a/pb.h b/pb.h
index 3d4323a..cd3f465 100644
--- a/pb.h
+++ b/pb.h
@@ -97,7 +97,7 @@ typedef uint8_t pb_type_t;
/* Read to pre-allocated array
* Maximum number of entries is array_size,
* actual number is stored at size_offset */
-#define PB_HTYPE_ARRAY 0x20
+#define PB_HTYPE_REPEATED 0x20
/* Works for all required/optional/repeated fields.
* data_offset points to pb_callback_t structure.
@@ -226,7 +226,7 @@ typedef enum {
/* Repeated fields have a _count field and also the maximum number of entries. */
#define PB_REPEATED_STATIC(tag, st, m, pm, ltype, ptr) \
- {tag, PB_HTYPE_ARRAY | ltype, \
+ {tag, PB_HTYPE_REPEATED | ltype, \
pb_delta_end(st, m, pm), \
pb_delta(st, m ## _count, m), \
pb_membersize(st, m[0]), \
diff --git a/pb_decode.c b/pb_decode.c
index d474113..351c8ec 100644
--- a/pb_decode.c
+++ b/pb_decode.c
@@ -303,7 +303,7 @@ static bool pb_field_next(pb_field_iterator_t *iter)
bool notwrapped = true;
size_t prev_size = iter->current->data_size;
- if (PB_HTYPE(iter->current->type) == PB_HTYPE_ARRAY)
+ if (PB_HTYPE(iter->current->type) == PB_HTYPE_REPEATED)
prev_size *= iter->current->array_size;
if (PB_HTYPE(iter->current->type) == PB_HTYPE_REQUIRED)
@@ -356,7 +356,7 @@ static bool checkreturn decode_field(pb_istream_t *stream, pb_wire_type_t wire_t
*(bool*)iter->pSize = true;
return func(stream, iter->current, iter->pData);
- case PB_HTYPE_ARRAY:
+ case PB_HTYPE_REPEATED:
if (wire_type == PB_WT_STRING
&& PB_LTYPE(iter->current->type) <= PB_LTYPE_LAST_PACKABLE)
{
@@ -459,7 +459,7 @@ static void pb_message_set_to_defaults(const pb_field_t fields[], void *dest_str
{
*(bool*)iter.pSize = false;
}
- else if (PB_HTYPE(iter.current->type) == PB_HTYPE_ARRAY)
+ else if (PB_HTYPE(iter.current->type) == PB_HTYPE_REPEATED)
{
*(size_t*)iter.pSize = 0;
continue; /* Array is empty, no need to initialize contents */
@@ -715,7 +715,7 @@ bool checkreturn pb_dec_submessage(pb_istream_t *stream, const pb_field_t *field
/* New array entries need to be initialized, while required and optional
* submessages have already been initialized in the top-level pb_decode. */
- if (PB_HTYPE(field->type) == PB_HTYPE_ARRAY)
+ if (PB_HTYPE(field->type) == PB_HTYPE_REPEATED)
status = pb_decode(&substream, submsg_fields, dest);
else
status = pb_decode_noinit(&substream, submsg_fields, dest);
diff --git a/pb_encode.c b/pb_encode.c
index bba5dc1..85d6578 100644
--- a/pb_encode.c
+++ b/pb_encode.c
@@ -167,7 +167,7 @@ bool checkreturn pb_encode(pb_ostream_t *stream, const pb_field_t fields[], cons
pSize = (const char*)pData + field->size_offset;
prev_size = field->data_size;
- if (PB_HTYPE(field->type) == PB_HTYPE_ARRAY)
+ if (PB_HTYPE(field->type) == PB_HTYPE_REPEATED)
prev_size *= field->array_size;
switch (PB_HTYPE(field->type))
@@ -190,7 +190,7 @@ bool checkreturn pb_encode(pb_ostream_t *stream, const pb_field_t fields[], cons
}
break;
- case PB_HTYPE_ARRAY:
+ case PB_HTYPE_REPEATED:
if (!encode_array(stream, field, pData, *(const size_t*)pSize, func))
return false;
break;
diff --git a/tests/bc_alltypes.pb.c b/tests/bc_alltypes.pb.c
index 322b634..7d1edf5 100644
--- a/tests/bc_alltypes.pb.c
+++ b/tests/bc_alltypes.pb.c
@@ -1,7 +1,13 @@
/* Automatically generated nanopb constant definitions */
-#include "bc_alltypes.pb.h"
+/* Generated by 0.2.0-dev at Sun Feb 17 00:09:53 2013. */
+/* This is a file generated using nanopb-0.2.0-dev.
+ * It is used as a part of test suite in order to detect any
+ * incompatible changes made to the generator in future versions.
+ */
-const char SubMessage_substuff1_default[17] = "1";
+#include "alltypes.pb.h"
+
+const char SubMessage_substuff1_default[16] = "1";
const int32_t SubMessage_substuff2_default = 2;
const uint32_t SubMessage_substuff3_default = 3;
const int32_t AllTypes_opt_int32_default = 4041;
@@ -17,310 +23,71 @@ const float AllTypes_opt_float_default = 4050;
const uint64_t AllTypes_opt_fixed64_default = 4051;
const int64_t AllTypes_opt_sfixed64_default = 4052;
const double AllTypes_opt_double_default = 4053;
-const char AllTypes_opt_string_default[17] = "4054";
+const char AllTypes_opt_string_default[16] = "4054";
const AllTypes_opt_bytes_t AllTypes_opt_bytes_default = {4, {0x34,0x30,0x35,0x35}};
const MyEnum AllTypes_opt_enum_default = MyEnum_Second;
const pb_field_t SubMessage_fields[4] = {
- {1, PB_HTYPE_REQUIRED | PB_LTYPE_STRING,
- offsetof(SubMessage, substuff1), 0,
- pb_membersize(SubMessage, substuff1), 0,
- &SubMessage_substuff1_default},
-
- {2, PB_HTYPE_REQUIRED | PB_LTYPE_VARINT,
- pb_delta_end(SubMessage, substuff2, substuff1), 0,
- pb_membersize(SubMessage, substuff2), 0,
- &SubMessage_substuff2_default},
-
- {3, PB_HTYPE_OPTIONAL | PB_LTYPE_FIXED32,
- pb_delta_end(SubMessage, substuff3, substuff2),
- pb_delta(SubMessage, has_substuff3, substuff3),
- pb_membersize(SubMessage, substuff3), 0,
- &SubMessage_substuff3_default},
-
+ PB_FIELD( 1, STRING , REQUIRED, STATIC, SubMessage, substuff1, substuff1, &SubMessage_substuff1_default),
+ PB_FIELD( 2, INT32 , REQUIRED, STATIC, SubMessage, substuff2, substuff1, &SubMessage_substuff2_default),
+ PB_FIELD( 3, FIXED32 , OPTIONAL, STATIC, SubMessage, substuff3, substuff2, &SubMessage_substuff3_default),
PB_LAST_FIELD
};
const pb_field_t AllTypes_fields[53] = {
- {1, PB_HTYPE_REQUIRED | PB_LTYPE_VARINT,
- offsetof(AllTypes, req_int32), 0,
- pb_membersize(AllTypes, req_int32), 0, 0},
-
- {2, PB_HTYPE_REQUIRED | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, req_int64, req_int32), 0,
- pb_membersize(AllTypes, req_int64), 0, 0},
-
- {3, PB_HTYPE_REQUIRED | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, req_uint32, req_int64), 0,
- pb_membersize(AllTypes, req_uint32), 0, 0},
-
- {4, PB_HTYPE_REQUIRED | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, req_uint64, req_uint32), 0,
- pb_membersize(AllTypes, req_uint64), 0, 0},
-
- {5, PB_HTYPE_REQUIRED | PB_LTYPE_SVARINT,
- pb_delta_end(AllTypes, req_sint32, req_uint64), 0,
- pb_membersize(AllTypes, req_sint32), 0, 0},
-
- {6, PB_HTYPE_REQUIRED | PB_LTYPE_SVARINT,
- pb_delta_end(AllTypes, req_sint64, req_sint32), 0,
- pb_membersize(AllTypes, req_sint64), 0, 0},
-
- {7, PB_HTYPE_REQUIRED | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, req_bool, req_sint64), 0,
- pb_membersize(AllTypes, req_bool), 0, 0},
-
- {8, PB_HTYPE_REQUIRED | PB_LTYPE_FIXED32,
- pb_delta_end(AllTypes, req_fixed32, req_bool), 0,
- pb_membersize(AllTypes, req_fixed32), 0, 0},
-
- {9, PB_HTYPE_REQUIRED | PB_LTYPE_FIXED32,
- pb_delta_end(AllTypes, req_sfixed32, req_fixed32), 0,
- pb_membersize(AllTypes, req_sfixed32), 0, 0},
-
- {10, PB_HTYPE_REQUIRED | PB_LTYPE_FIXED32,
- pb_delta_end(AllTypes, req_float, req_sfixed32), 0,
- pb_membersize(AllTypes, req_float), 0, 0},
-
- {11, PB_HTYPE_REQUIRED | PB_LTYPE_FIXED64,
- pb_delta_end(AllTypes, req_fixed64, req_float), 0,
- pb_membersize(AllTypes, req_fixed64), 0, 0},
-
- {12, PB_HTYPE_REQUIRED | PB_LTYPE_FIXED64,
- pb_delta_end(AllTypes, req_sfixed64, req_fixed64), 0,
- pb_membersize(AllTypes, req_sfixed64), 0, 0},
-
- {13, PB_HTYPE_REQUIRED | PB_LTYPE_FIXED64,
- pb_delta_end(AllTypes, req_double, req_sfixed64), 0,
- pb_membersize(AllTypes, req_double), 0, 0},
-
- {14, PB_HTYPE_REQUIRED | PB_LTYPE_STRING,
- pb_delta_end(AllTypes, req_string, req_double), 0,
- pb_membersize(AllTypes, req_string), 0, 0},
-
- {15, PB_HTYPE_REQUIRED | PB_LTYPE_BYTES,
- pb_delta_end(AllTypes, req_bytes, req_string), 0,
- pb_membersize(AllTypes, req_bytes), 0, 0},
-
- {16, PB_HTYPE_REQUIRED | PB_LTYPE_SUBMESSAGE,
- pb_delta_end(AllTypes, req_submsg, req_bytes), 0,
- pb_membersize(AllTypes, req_submsg), 0,
- &SubMessage_fields},
-
- {17, PB_HTYPE_REQUIRED | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, req_enum, req_submsg), 0,
- pb_membersize(AllTypes, req_enum), 0, 0},
-
- {21, PB_HTYPE_ARRAY | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, rep_int32, req_enum),
- pb_delta(AllTypes, rep_int32_count, rep_int32),
- pb_membersize(AllTypes, rep_int32[0]),
- pb_membersize(AllTypes, rep_int32) / pb_membersize(AllTypes, rep_int32[0]), 0},
-
- {22, PB_HTYPE_ARRAY | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, rep_int64, rep_int32),
- pb_delta(AllTypes, rep_int64_count, rep_int64),
- pb_membersize(AllTypes, rep_int64[0]),
- pb_membersize(AllTypes, rep_int64) / pb_membersize(AllTypes, rep_int64[0]), 0},
-
- {23, PB_HTYPE_ARRAY | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, rep_uint32, rep_int64),
- pb_delta(AllTypes, rep_uint32_count, rep_uint32),
- pb_membersize(AllTypes, rep_uint32[0]),
- pb_membersize(AllTypes, rep_uint32) / pb_membersize(AllTypes, rep_uint32[0]), 0},
-
- {24, PB_HTYPE_ARRAY | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, rep_uint64, rep_uint32),
- pb_delta(AllTypes, rep_uint64_count, rep_uint64),
- pb_membersize(AllTypes, rep_uint64[0]),
- pb_membersize(AllTypes, rep_uint64) / pb_membersize(AllTypes, rep_uint64[0]), 0},
-
- {25, PB_HTYPE_ARRAY | PB_LTYPE_SVARINT,
- pb_delta_end(AllTypes, rep_sint32, rep_uint64),
- pb_delta(AllTypes, rep_sint32_count, rep_sint32),
- pb_membersize(AllTypes, rep_sint32[0]),
- pb_membersize(AllTypes, rep_sint32) / pb_membersize(AllTypes, rep_sint32[0]), 0},
-
- {26, PB_HTYPE_ARRAY | PB_LTYPE_SVARINT,
- pb_delta_end(AllTypes, rep_sint64, rep_sint32),
- pb_delta(AllTypes, rep_sint64_count, rep_sint64),
- pb_membersize(AllTypes, rep_sint64[0]),
- pb_membersize(AllTypes, rep_sint64) / pb_membersize(AllTypes, rep_sint64[0]), 0},
-
- {27, PB_HTYPE_ARRAY | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, rep_bool, rep_sint64),
- pb_delta(AllTypes, rep_bool_count, rep_bool),
- pb_membersize(AllTypes, rep_bool[0]),
- pb_membersize(AllTypes, rep_bool) / pb_membersize(AllTypes, rep_bool[0]), 0},
-
- {28, PB_HTYPE_ARRAY | PB_LTYPE_FIXED32,
- pb_delta_end(AllTypes, rep_fixed32, rep_bool),
- pb_delta(AllTypes, rep_fixed32_count, rep_fixed32),
- pb_membersize(AllTypes, rep_fixed32[0]),
- pb_membersize(AllTypes, rep_fixed32) / pb_membersize(AllTypes, rep_fixed32[0]), 0},
-
- {29, PB_HTYPE_ARRAY | PB_LTYPE_FIXED32,
- pb_delta_end(AllTypes, rep_sfixed32, rep_fixed32),
- pb_delta(AllTypes, rep_sfixed32_count, rep_sfixed32),
- pb_membersize(AllTypes, rep_sfixed32[0]),
- pb_membersize(AllTypes, rep_sfixed32) / pb_membersize(AllTypes, rep_sfixed32[0]), 0},
-
- {30, PB_HTYPE_ARRAY | PB_LTYPE_FIXED32,
- pb_delta_end(AllTypes, rep_float, rep_sfixed32),
- pb_delta(AllTypes, rep_float_count, rep_float),
- pb_membersize(AllTypes, rep_float[0]),
- pb_membersize(AllTypes, rep_float) / pb_membersize(AllTypes, rep_float[0]), 0},
-
- {31, PB_HTYPE_ARRAY | PB_LTYPE_FIXED64,
- pb_delta_end(AllTypes, rep_fixed64, rep_float),
- pb_delta(AllTypes, rep_fixed64_count, rep_fixed64),
- pb_membersize(AllTypes, rep_fixed64[0]),
- pb_membersize(AllTypes, rep_fixed64) / pb_membersize(AllTypes, rep_fixed64[0]), 0},
-
- {32, PB_HTYPE_ARRAY | PB_LTYPE_FIXED64,
- pb_delta_end(AllTypes, rep_sfixed64, rep_fixed64),
- pb_delta(AllTypes, rep_sfixed64_count, rep_sfixed64),
- pb_membersize(AllTypes, rep_sfixed64[0]),
- pb_membersize(AllTypes, rep_sfixed64) / pb_membersize(AllTypes, rep_sfixed64[0]), 0},
-
- {33, PB_HTYPE_ARRAY | PB_LTYPE_FIXED64,
- pb_delta_end(AllTypes, rep_double, rep_sfixed64),
- pb_delta(AllTypes, rep_double_count, rep_double),
- pb_membersize(AllTypes, rep_double[0]),
- pb_membersize(AllTypes, rep_double) / pb_membersize(AllTypes, rep_double[0]), 0},
-
- {34, PB_HTYPE_ARRAY | PB_LTYPE_STRING,
- pb_delta_end(AllTypes, rep_string, rep_double),
- pb_delta(AllTypes, rep_string_count, rep_string),
- pb_membersize(AllTypes, rep_string[0]),
- pb_membersize(AllTypes, rep_string) / pb_membersize(AllTypes, rep_string[0]), 0},
-
- {35, PB_HTYPE_ARRAY | PB_LTYPE_BYTES,
- pb_delta_end(AllTypes, rep_bytes, rep_string),
- pb_delta(AllTypes, rep_bytes_count, rep_bytes),
- pb_membersize(AllTypes, rep_bytes[0]),
- pb_membersize(AllTypes, rep_bytes) / pb_membersize(AllTypes, rep_bytes[0]), 0},
-
- {36, PB_HTYPE_ARRAY | PB_LTYPE_SUBMESSAGE,
- pb_delta_end(AllTypes, rep_submsg, rep_bytes),
- pb_delta(AllTypes, rep_submsg_count, rep_submsg),
- pb_membersize(AllTypes, rep_submsg[0]),
- pb_membersize(AllTypes, rep_submsg) / pb_membersize(AllTypes, rep_submsg[0]),
- &SubMessage_fields},
-
- {37, PB_HTYPE_ARRAY | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, rep_enum, rep_submsg),
- pb_delta(AllTypes, rep_enum_count, rep_enum),
- pb_membersize(AllTypes, rep_enum[0]),
- pb_membersize(AllTypes, rep_enum) / pb_membersize(AllTypes, rep_enum[0]), 0},
-
- {41, PB_HTYPE_OPTIONAL | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, opt_int32, rep_enum),
- pb_delta(AllTypes, has_opt_int32, opt_int32),
- pb_membersize(AllTypes, opt_int32), 0,
- &AllTypes_opt_int32_default},
-
- {42, PB_HTYPE_OPTIONAL | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, opt_int64, opt_int32),
- pb_delta(AllTypes, has_opt_int64, opt_int64),
- pb_membersize(AllTypes, opt_int64), 0,
- &AllTypes_opt_int64_default},
-
- {43, PB_HTYPE_OPTIONAL | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, opt_uint32, opt_int64),
- pb_delta(AllTypes, has_opt_uint32, opt_uint32),
- pb_membersize(AllTypes, opt_uint32), 0,
- &AllTypes_opt_uint32_default},
-
- {44, PB_HTYPE_OPTIONAL | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, opt_uint64, opt_uint32),
- pb_delta(AllTypes, has_opt_uint64, opt_uint64),
- pb_membersize(AllTypes, opt_uint64), 0,
- &AllTypes_opt_uint64_default},
-
- {45, PB_HTYPE_OPTIONAL | PB_LTYPE_SVARINT,
- pb_delta_end(AllTypes, opt_sint32, opt_uint64),
- pb_delta(AllTypes, has_opt_sint32, opt_sint32),
- pb_membersize(AllTypes, opt_sint32), 0,
- &AllTypes_opt_sint32_default},
-
- {46, PB_HTYPE_OPTIONAL | PB_LTYPE_SVARINT,
- pb_delta_end(AllTypes, opt_sint64, opt_sint32),
- pb_delta(AllTypes, has_opt_sint64, opt_sint64),
- pb_membersize(AllTypes, opt_sint64), 0,
- &AllTypes_opt_sint64_default},
-
- {47, PB_HTYPE_OPTIONAL | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, opt_bool, opt_sint64),
- pb_delta(AllTypes, has_opt_bool, opt_bool),
- pb_membersize(AllTypes, opt_bool), 0,
- &AllTypes_opt_bool_default},
-
- {48, PB_HTYPE_OPTIONAL | PB_LTYPE_FIXED32,
- pb_delta_end(AllTypes, opt_fixed32, opt_bool),
- pb_delta(AllTypes, has_opt_fixed32, opt_fixed32),
- pb_membersize(AllTypes, opt_fixed32), 0,
- &AllTypes_opt_fixed32_default},
-
- {49, PB_HTYPE_OPTIONAL | PB_LTYPE_FIXED32,
- pb_delta_end(AllTypes, opt_sfixed32, opt_fixed32),
- pb_delta(AllTypes, has_opt_sfixed32, opt_sfixed32),
- pb_membersize(AllTypes, opt_sfixed32), 0,
- &AllTypes_opt_sfixed32_default},
-
- {50, PB_HTYPE_OPTIONAL | PB_LTYPE_FIXED32,
- pb_delta_end(AllTypes, opt_float, opt_sfixed32),
- pb_delta(AllTypes, has_opt_float, opt_float),
- pb_membersize(AllTypes, opt_float), 0,
- &AllTypes_opt_float_default},
-
- {51, PB_HTYPE_OPTIONAL | PB_LTYPE_FIXED64,
- pb_delta_end(AllTypes, opt_fixed64, opt_float),
- pb_delta(AllTypes, has_opt_fixed64, opt_fixed64),
- pb_membersize(AllTypes, opt_fixed64), 0,
- &AllTypes_opt_fixed64_default},
-
- {52, PB_HTYPE_OPTIONAL | PB_LTYPE_FIXED64,
- pb_delta_end(AllTypes, opt_sfixed64, opt_fixed64),
- pb_delta(AllTypes, has_opt_sfixed64, opt_sfixed64),
- pb_membersize(AllTypes, opt_sfixed64), 0,
- &AllTypes_opt_sfixed64_default},
-
- {53, PB_HTYPE_OPTIONAL | PB_LTYPE_FIXED64,
- pb_delta_end(AllTypes, opt_double, opt_sfixed64),
- pb_delta(AllTypes, has_opt_double, opt_double),
- pb_membersize(AllTypes, opt_double), 0,
- &AllTypes_opt_double_default},
-
- {54, PB_HTYPE_OPTIONAL | PB_LTYPE_STRING,
- pb_delta_end(AllTypes, opt_string, opt_double),
- pb_delta(AllTypes, has_opt_string, opt_string),
- pb_membersize(AllTypes, opt_string), 0,
- &AllTypes_opt_string_default},
-
- {55, PB_HTYPE_OPTIONAL | PB_LTYPE_BYTES,
- pb_delta_end(AllTypes, opt_bytes, opt_string),
- pb_delta(AllTypes, has_opt_bytes, opt_bytes),
- pb_membersize(AllTypes, opt_bytes), 0,
- &AllTypes_opt_bytes_default},
-
- {56, PB_HTYPE_OPTIONAL | PB_LTYPE_SUBMESSAGE,
- pb_delta_end(AllTypes, opt_submsg, opt_bytes),
- pb_delta(AllTypes, has_opt_submsg, opt_submsg),
- pb_membersize(AllTypes, opt_submsg), 0,
- &SubMessage_fields},
-
- {57, PB_HTYPE_OPTIONAL | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, opt_enum, opt_submsg),
- pb_delta(AllTypes, has_opt_enum, opt_enum),
- pb_membersize(AllTypes, opt_enum), 0,
- &AllTypes_opt_enum_default},
-
- {99, PB_HTYPE_REQUIRED | PB_LTYPE_VARINT,
- pb_delta_end(AllTypes, end, opt_enum), 0,
- pb_membersize(AllTypes, end), 0, 0},
-
+ PB_FIELD( 1, INT32 , REQUIRED, STATIC, AllTypes, req_int32, req_int32, 0),
+ PB_FIELD( 2, INT64 , REQUIRED, STATIC, AllTypes, req_int64, req_int32, 0),
+ PB_FIELD( 3, UINT32 , REQUIRED, STATIC, AllTypes, req_uint32, req_int64, 0),
+ PB_FIELD( 4, UINT64 , REQUIRED, STATIC, AllTypes, req_uint64, req_uint32, 0),
+ PB_FIELD( 5, SINT32 , REQUIRED, STATIC, AllTypes, req_sint32, req_uint64, 0),
+ PB_FIELD( 6, SINT64 , REQUIRED, STATIC, AllTypes, req_sint64, req_sint32, 0),
+ PB_FIELD( 7, BOOL , REQUIRED, STATIC, AllTypes, req_bool, req_sint64, 0),
+ PB_FIELD( 8, FIXED32 , REQUIRED, STATIC, AllTypes, req_fixed32, req_bool, 0),
+ PB_FIELD( 9, SFIXED32, REQUIRED, STATIC, AllTypes, req_sfixed32, req_fixed32, 0),
+ PB_FIELD( 10, FLOAT , REQUIRED, STATIC, AllTypes, req_float, req_sfixed32, 0),
+ PB_FIELD( 11, FIXED64 , REQUIRED, STATIC, AllTypes, req_fixed64, req_float, 0),
+ PB_FIELD( 12, SFIXED64, REQUIRED, STATIC, AllTypes, req_sfixed64, req_fixed64, 0),
+ PB_FIELD( 13, DOUBLE , REQUIRED, STATIC, AllTypes, req_double, req_sfixed64, 0),
+ PB_FIELD( 14, STRING , REQUIRED, STATIC, AllTypes, req_string, req_double, 0),
+ PB_FIELD( 15, BYTES , REQUIRED, STATIC, AllTypes, req_bytes, req_string, 0),
+ PB_FIELD( 16, MESSAGE , REQUIRED, STATIC, AllTypes, req_submsg, req_bytes, &SubMessage_fields),
+ PB_FIELD( 17, ENUM , REQUIRED, STATIC, AllTypes, req_enum, req_submsg, 0),
+ PB_FIELD( 21, INT32 , REPEATED, STATIC, AllTypes, rep_int32, req_enum, 0),
+ PB_FIELD( 22, INT64 , REPEATED, STATIC, AllTypes, rep_int64, rep_int32, 0),
+ PB_FIELD( 23, UINT32 , REPEATED, STATIC, AllTypes, rep_uint32, rep_int64, 0),
+ PB_FIELD( 24, UINT64 , REPEATED, STATIC, AllTypes, rep_uint64, rep_uint32, 0),
+ PB_FIELD( 25, SINT32 , REPEATED, STATIC, AllTypes, rep_sint32, rep_uint64, 0),
+ PB_FIELD( 26, SINT64 , REPEATED, STATIC, AllTypes, rep_sint64, rep_sint32, 0),
+ PB_FIELD( 27, BOOL , REPEATED, STATIC, AllTypes, rep_bool, rep_sint64, 0),
+ PB_FIELD( 28, FIXED32 , REPEATED, STATIC, AllTypes, rep_fixed32, rep_bool, 0),
+ PB_FIELD( 29, SFIXED32, REPEATED, STATIC, AllTypes, rep_sfixed32, rep_fixed32, 0),
+ PB_FIELD( 30, FLOAT , REPEATED, STATIC, AllTypes, rep_float, rep_sfixed32, 0),
+ PB_FIELD( 31, FIXED64 , REPEATED, STATIC, AllTypes, rep_fixed64, rep_float, 0),
+ PB_FIELD( 32, SFIXED64, REPEATED, STATIC, AllTypes, rep_sfixed64, rep_fixed64, 0),
+ PB_FIELD( 33, DOUBLE , REPEATED, STATIC, AllTypes, rep_double, rep_sfixed64, 0),
+ PB_FIELD( 34, STRING , REPEATED, STATIC, AllTypes, rep_string, rep_double, 0),
+ PB_FIELD( 35, BYTES , REPEATED, STATIC, AllTypes, rep_bytes, rep_string, 0),
+ PB_FIELD( 36, MESSAGE , REPEATED, STATIC, AllTypes, rep_submsg, rep_bytes, &SubMessage_fields),
+ PB_FIELD( 37, ENUM , REPEATED, STATIC, AllTypes, rep_enum, rep_submsg, 0),
+ PB_FIELD( 41, INT32 , OPTIONAL, STATIC, AllTypes, opt_int32, rep_enum, &AllTypes_opt_int32_default),
+ PB_FIELD( 42, INT64 , OPTIONAL, STATIC, AllTypes, opt_int64, opt_int32, &AllTypes_opt_int64_default),
+ PB_FIELD( 43, UINT32 , OPTIONAL, STATIC, AllTypes, opt_uint32, opt_int64, &AllTypes_opt_uint32_default),
+ PB_FIELD( 44, UINT64 , OPTIONAL, STATIC, AllTypes, opt_uint64, opt_uint32, &AllTypes_opt_uint64_default),
+ PB_FIELD( 45, SINT32 , OPTIONAL, STATIC, AllTypes, opt_sint32, opt_uint64, &AllTypes_opt_sint32_default),
+ PB_FIELD( 46, SINT64 , OPTIONAL, STATIC, AllTypes, opt_sint64, opt_sint32, &AllTypes_opt_sint64_default),
+ PB_FIELD( 47, BOOL , OPTIONAL, STATIC, AllTypes, opt_bool, opt_sint64, &AllTypes_opt_bool_default),
+ PB_FIELD( 48, FIXED32 , OPTIONAL, STATIC, AllTypes, opt_fixed32, opt_bool, &AllTypes_opt_fixed32_default),
+ PB_FIELD( 49, SFIXED32, OPTIONAL, STATIC, AllTypes, opt_sfixed32, opt_fixed32, &AllTypes_opt_sfixed32_default),
+ PB_FIELD( 50, FLOAT , OPTIONAL, STATIC, AllTypes, opt_float, opt_sfixed32, &AllTypes_opt_float_default),
+ PB_FIELD( 51, FIXED64 , OPTIONAL, STATIC, AllTypes, opt_fixed64, opt_float, &AllTypes_opt_fixed64_default),
+ PB_FIELD( 52, SFIXED64, OPTIONAL, STATIC, AllTypes, opt_sfixed64, opt_fixed64, &AllTypes_opt_sfixed64_default),
+ PB_FIELD( 53, DOUBLE , OPTIONAL, STATIC, AllTypes, opt_double, opt_sfixed64, &AllTypes_opt_double_default),
+ PB_FIELD( 54, STRING , OPTIONAL, STATIC, AllTypes, opt_string, opt_double, &AllTypes_opt_string_default),
+ PB_FIELD( 55, BYTES , OPTIONAL, STATIC, AllTypes, opt_bytes, opt_string, &AllTypes_opt_bytes_default),
+ PB_FIELD( 56, MESSAGE , OPTIONAL, STATIC, AllTypes, opt_submsg, opt_bytes, &SubMessage_fields),
+ PB_FIELD( 57, ENUM , OPTIONAL, STATIC, AllTypes, opt_enum, opt_submsg, &AllTypes_opt_enum_default),
+ PB_FIELD( 99, INT32 , REQUIRED, STATIC, AllTypes, end, opt_enum, 0),
PB_LAST_FIELD
};
diff --git a/tests/bc_alltypes.pb.h b/tests/bc_alltypes.pb.h
index fe0b8f7..037b347 100644
--- a/tests/bc_alltypes.pb.h
+++ b/tests/bc_alltypes.pb.h
@@ -1,14 +1,19 @@
/* Automatically generated nanopb header */
-/* This is a file generated using nanopb-0.1.1.
+/* This is a file generated using nanopb-0.2.0-dev.
* It is used as a part of test suite in order to detect any
* incompatible changes made to the generator in future versions.
*/
-#ifndef _PB_BC_ALLTYPES_PB_H_
-#define _PB_BC_ALLTYPES_PB_H_
+
+#ifndef _PB_ALLTYPES_PB_H_
+#define _PB_ALLTYPES_PB_H_
#include <pb.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* Enum definitions */
-typedef enum {
+typedef enum _MyEnum {
MyEnum_Zero = 0,
MyEnum_First = 1,
MyEnum_Second = 2,
@@ -16,7 +21,7 @@ typedef enum {
} MyEnum;
/* Struct definitions */
-typedef struct {
+typedef struct _SubMessage {
char substuff1[16];
int32_t substuff2;
bool has_substuff3;
@@ -38,7 +43,7 @@ typedef struct {
uint8_t bytes[16];
} AllTypes_opt_bytes_t;
-typedef struct {
+typedef struct _AllTypes {
int32_t req_int32;
int64_t req_int64;
uint32_t req_uint32;
@@ -128,7 +133,7 @@ typedef struct {
} AllTypes;
/* Default values for struct fields */
-extern const char SubMessage_substuff1_default[17];
+extern const char SubMessage_substuff1_default[16];
extern const int32_t SubMessage_substuff2_default;
extern const uint32_t SubMessage_substuff3_default;
extern const int32_t AllTypes_opt_int32_default;
@@ -144,7 +149,7 @@ extern const float AllTypes_opt_float_default;
extern const uint64_t AllTypes_opt_fixed64_default;
extern const int64_t AllTypes_opt_sfixed64_default;
extern const double AllTypes_opt_double_default;
-extern const char AllTypes_opt_string_default[17];
+extern const char AllTypes_opt_string_default[16];
extern const AllTypes_opt_bytes_t AllTypes_opt_bytes_default;
extern const MyEnum AllTypes_opt_enum_default;
@@ -152,4 +157,22 @@ extern const MyEnum AllTypes_opt_enum_default;
extern const pb_field_t SubMessage_fields[4];
extern const pb_field_t AllTypes_fields[53];
+/* Check that field information fits in pb_field_t */
+#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT)
+STATIC_ASSERT((pb_membersize(AllTypes, req_submsg) < 256 && pb_membersize(AllTypes, rep_submsg[0]) < 256 && pb_membersize(AllTypes, opt_submsg) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_SubMessage_AllTypes)
+#endif
+
+#if !defined(PB_FIELD_32BIT)
+STATIC_ASSERT((pb_membersize(AllTypes, req_submsg) < 65536 && pb_membersize(AllTypes, rep_submsg[0]) < 65536 && pb_membersize(AllTypes, opt_submsg) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_SubMessage_AllTypes)
+#endif
+
+/* On some platforms (such as AVR), double is really float.
+ * These are not directly supported by nanopb, but see example_avr_double.
+ */
+STATIC_ASSERT(sizeof(double) == 8, DOUBLE_MUST_BE_8_BYTES)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
#endif