@@ -44,11 +44,11 @@ struct json_obj_descr {
4444 struct {
4545 const struct json_obj_descr * sub_descr ;
4646 size_t sub_descr_len ;
47- };
47+ } object ;
4848 struct {
4949 const struct json_obj_descr * element_descr ;
5050 size_t n_elements ;
51- };
51+ } array ;
5252 };
5353};
5454
@@ -129,8 +129,10 @@ typedef int (*json_append_bytes_t)(const char *bytes, size_t len,
129129 .field_name_len = (sizeof(#field_name_) - 1), \
130130 .offset = offsetof(struct_, field_name_), \
131131 .type = JSON_TOK_OBJECT_START, \
132- .sub_descr = sub_descr_, \
133- .sub_descr_len = ARRAY_SIZE(sub_descr_) \
132+ .object = { \
133+ .sub_descr = sub_descr_, \
134+ .sub_descr_len = ARRAY_SIZE(sub_descr_), \
135+ }, \
134136 }
135137
136138/**
@@ -165,11 +167,13 @@ typedef int (*json_append_bytes_t)(const char *bytes, size_t len,
165167 .field_name_len = sizeof(#field_name_) - 1, \
166168 .offset = offsetof(struct_, field_name_), \
167169 .type = JSON_TOK_LIST_START, \
168- .element_descr = &(struct json_obj_descr) { \
169- .type = elem_type_, \
170- .offset = offsetof(struct_, len_field_), \
170+ .array = { \
171+ .element_descr = &(struct json_obj_descr) { \
172+ .type = elem_type_, \
173+ .offset = offsetof(struct_, len_field_), \
174+ }, \
175+ .n_elements = (max_len_), \
171176 }, \
172- .n_elements = (max_len_), \
173177 }
174178
175179/**
@@ -218,13 +222,17 @@ typedef int (*json_append_bytes_t)(const char *bytes, size_t len,
218222 .field_name_len = sizeof(#field_name_) - 1, \
219223 .offset = offsetof(struct_, field_name_), \
220224 .type = JSON_TOK_LIST_START, \
221- .element_descr = &(struct json_obj_descr) { \
222- .type = JSON_TOK_OBJECT_START, \
223- .sub_descr = elem_descr_, \
224- .sub_descr_len = elem_descr_len_, \
225- .offset = offsetof(struct_, len_field_), \
225+ .array = { \
226+ .element_descr = &(struct json_obj_descr) { \
227+ .type = JSON_TOK_OBJECT_START, \
228+ .object = { \
229+ .sub_descr = elem_descr_, \
230+ .sub_descr_len = elem_descr_len_, \
231+ }, \
232+ .offset = offsetof(struct_, len_field_), \
233+ }, \
234+ .n_elements = (max_len_), \
226235 }, \
227- .n_elements = (max_len_), \
228236 }
229237
230238/**
@@ -276,8 +284,10 @@ typedef int (*json_append_bytes_t)(const char *bytes, size_t len,
276284 .field_name_len = (sizeof(json_field_name_) - 1), \
277285 .offset = offsetof(struct_, struct_field_name_), \
278286 .type = JSON_TOK_OBJECT_START, \
279- .sub_descr = sub_descr_, \
280- .sub_descr_len = ARRAY_SIZE(sub_descr_) \
287+ .object = { \
288+ .sub_descr = sub_descr_, \
289+ .sub_descr_len = ARRAY_SIZE(sub_descr_), \
290+ }, \
281291 }
282292
283293/**
@@ -309,11 +319,13 @@ typedef int (*json_append_bytes_t)(const char *bytes, size_t len,
309319 .field_name_len = sizeof(json_field_name_) - 1, \
310320 .offset = offsetof(struct_, struct_field_name_), \
311321 .type = JSON_TOK_LIST_START, \
312- .element_descr = &(struct json_obj_descr) { \
313- .type = elem_type_, \
314- .offset = offsetof(struct_, len_field_), \
322+ .array = { \
323+ .element_descr = &(struct json_obj_descr) { \
324+ .type = elem_type_, \
325+ .offset = offsetof(struct_, len_field_), \
326+ }, \
327+ .n_elements = (max_len_), \
315328 }, \
316- .n_elements = (max_len_), \
317329 }
318330
319331/**
@@ -373,8 +385,10 @@ typedef int (*json_append_bytes_t)(const char *bytes, size_t len,
373385 .type = JSON_TOK_LIST_START, \
374386 .element_descr = &(struct json_obj_descr) { \
375387 .type = JSON_TOK_OBJECT_START, \
376- .sub_descr = elem_descr_, \
377- .sub_descr_len = elem_descr_len_, \
388+ .object = { \
389+ .sub_descr = elem_descr_, \
390+ .sub_descr_len = elem_descr_len_, \
391+ }, \
378392 .offset = offsetof(struct_, len_field_), \
379393 }, \
380394 .n_elements = (max_len_), \
0 commit comments