#include <stdint.h>#include <stddef.h> enum E { //# $\label{enum}$ NoValue = -1, ValueA, //# pretty=A $\label{pretty}$ ValueB, //# pretty=B}; struct X { //# decoder encoder $\label{decoder_encoder}$ int i; //#1 required $\label{required}$ enum E e; //#2 default=NoValue print=no $\label{default}$ $\label{print_no}$ uint8_t b[8]; //#3 $\label{fixed_size}$ uint8_t c[8]; //#4 num_at=num_c $\label{variable_size}$ char *s; //#5 truncate $\label{truncate}$ char *t; uint64_t u; int x; //# $\label{only_pretty}$ int num_c; uint8_t buf[32]; //# buffer=here $\label{buffer}$ uint8_t rest[32]; //# rest=here $\label{rest}$}; struct Y { //# decoder encoder int num_x; struct X x[4]; //#1 num_at=^ callback=each_x $\label{num_at_above}$ $\label{callback}$ int all_i;}; static int each_x(struct Y *y, struct X *x) { // $\label{cb}$ if(y->num_x == 0) y->sum_i = 0; y->sum_i += x->i; return PB_CALLBACK_OK;} #include "def0.pb.h"
#include <stdint.h>
#include <stddef.h>
enum E { //# $\label{enum}$
NoValue = -1,
ValueA, //# pretty=A $\label{pretty}$
ValueB, //# pretty=B
};
struct X { //# decoder encoder $\label{decoder_encoder}$
int i; //#1 required $\label{required}$
enum E e; //#2 default=NoValue print=no $\label{default}$ $\label{print_no}$
uint8_t b[8]; //#3 $\label{fixed_size}$
uint8_t c[8]; //#4 num_at=num_c $\label{variable_size}$
char *s; //#5 truncate $\label{truncate}$
char *t;
uint64_t u;
int x; //# $\label{only_pretty}$
int num_c;
uint8_t buf[32]; //# buffer=here $\label{buffer}$
uint8_t rest[32]; //# rest=here $\label{rest}$
};
struct Y { //# decoder encoder
int num_x;
struct X x[4]; //#1 num_at=^ callback=each_x $\label{num_at_above}$ $\label{callback}$
int all_i;
};
static int each_x(struct Y *y, struct X *x) { // $\label{cb}$
if(y->num_x == 0) y->sum_i = 0;
y->sum_i += x->i;
return PB_CALLBACK_OK;
}
#include "def0.pb.h"