diff options
Diffstat (limited to 'pb_encode.c')
-rw-r--r-- | pb_encode.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/pb_encode.c b/pb_encode.c index 1eb9473a..dc5a2734 100644 --- a/pb_encode.c +++ b/pb_encode.c @@ -378,6 +378,17 @@ bool pb_encode_delimited(pb_ostream_t *stream, const pb_field_t fields[], const return pb_encode_submessage(stream, fields, src_struct); } +bool pb_get_encoded_size(size_t *size, const pb_field_t fields[], const void *src_struct) +{ + pb_ostream_t stream = PB_OSTREAM_SIZING; + + if (!pb_encode(&stream, fields, src_struct)) + return false; + + *size = stream.bytes_written; + return true; +} + /******************** * Helper functions * ********************/ |