19 Person person = Person_init_zero;
21 if (!
pb_decode(stream, Person_fields, &person))
26 printf(
"name: \"%s\"\n", person.name);
27 printf(
"id: %ld\n", (
long)person.id);
30 printf(
"email: \"%s\"\n", person.email);
32 for (i = 0; i < person.phone_count; i++)
34 Person_PhoneNumber *phone = &person.phone[i];
36 printf(
" number: \"%s\"\n", phone->number);
42 case Person_PhoneType_WORK:
43 printf(
" type: WORK\n");
46 case Person_PhoneType_HOME:
47 printf(
" type: HOME\n");
50 case Person_PhoneType_MOBILE:
51 printf(
" type: MOBILE\n");
73 printf(
"Message does not fit in buffer\n");
bool print_person(pb_istream_t *stream)
size_t fread(void *__restrict ptr, size_t size, size_t nmemb, FILE *__restrict stream)
#define PB_GET_ERROR(stream)
bool pb_decode(pb_istream_t *stream, const pb_msgdesc_t *fields, void *dest_struct)
pb_istream_t pb_istream_from_buffer(const pb_byte_t *buf, size_t msglen)
#define SET_BINARY_MODE(file)