Refactoring the field encoder interface.
Replaced the confusing pb_enc_* functions with new pb_encode_* functions that have a cleaner interface. Updated documentation. Got rid of the endian_copy stuff in pb_encode.c, instead using C casts to do it automatically. This makes the code safer and also reduces binary size by about 5%. Fixes Issue 6.
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
#define NANOPB_INTERNALS
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "pb_encode.h"
|
||||
@@ -123,7 +125,6 @@ int main()
|
||||
uint8_t buffer[30];
|
||||
pb_ostream_t s;
|
||||
uint8_t value = 1;
|
||||
int8_t svalue = -1;
|
||||
int32_t max = INT32_MAX;
|
||||
int32_t min = INT32_MIN;
|
||||
int64_t lmax = INT64_MAX;
|
||||
@@ -132,8 +133,6 @@ int main()
|
||||
|
||||
COMMENT("Test pb_enc_varint and pb_enc_svarint")
|
||||
TEST(WRITES(pb_enc_varint(&s, &field, &value), "\x01"));
|
||||
TEST(WRITES(pb_enc_svarint(&s, &field, &svalue), "\x01"));
|
||||
TEST(WRITES(pb_enc_svarint(&s, &field, &value), "\x02"));
|
||||
|
||||
field.data_size = sizeof(max);
|
||||
TEST(WRITES(pb_enc_svarint(&s, &field, &max), "\xfe\xff\xff\xff\x0f"));
|
||||
|
||||
Reference in New Issue
Block a user