diff options
Diffstat (limited to 'pb_decode.c')
-rw-r--r-- | pb_decode.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/pb_decode.c b/pb_decode.c index d0e18ccb..c5336981 100644 --- a/pb_decode.c +++ b/pb_decode.c @@ -603,6 +603,19 @@ bool checkreturn pb_decode(pb_istream_t *stream, const pb_field_t fields[], void return pb_decode_noinit(stream, fields, dest_struct); } +bool pb_decode_delimited(pb_istream_t *stream, const pb_field_t fields[], void *dest_struct) +{ + pb_istream_t substream; + bool status; + + if (!pb_make_string_substream(stream, &substream)) + return false; + + status = pb_decode(&substream, fields, dest_struct); + pb_close_string_substream(stream, &substream); + return status; +} + /* Field decoders */ bool pb_decode_svarint(pb_istream_t *stream, int64_t *dest) |