bool decode_unionmessage_contents(pb_istream_t *stream, const pb_field_t fields[], void *dest_struct)
{
- pb_field_t field = {}; /* NB: Could get rid of this wrapper by fixing issue #2. */
- field.ptr = fields;
+ pb_istream_t substream;
+ bool status;
+ if (!pb_make_string_substream(stream, &substream))
+ return false;
- return pb_dec_submessage(stream, &field, dest_struct);
+ status = pb_decode(&substream, fields, dest_struct);
+ pb_close_string_substream(stream, &substream);
+ return status;
}
int main()