@@ -44,11 +44,11 @@ struct json_obj_descr {
44
44
struct {
45
45
const struct json_obj_descr * sub_descr ;
46
46
size_t sub_descr_len ;
47
- };
47
+ } object ;
48
48
struct {
49
49
const struct json_obj_descr * element_descr ;
50
50
size_t n_elements ;
51
- };
51
+ } array ;
52
52
};
53
53
};
54
54
@@ -129,8 +129,10 @@ typedef int (*json_append_bytes_t)(const char *bytes, size_t len,
129
129
.field_name_len = (sizeof(#field_name_) - 1), \
130
130
.offset = offsetof(struct_, field_name_), \
131
131
.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
+ }, \
134
136
}
135
137
136
138
/**
@@ -165,11 +167,13 @@ typedef int (*json_append_bytes_t)(const char *bytes, size_t len,
165
167
.field_name_len = sizeof(#field_name_) - 1, \
166
168
.offset = offsetof(struct_, field_name_), \
167
169
.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_), \
171
176
}, \
172
- .n_elements = (max_len_), \
173
177
}
174
178
175
179
/**
@@ -218,13 +222,17 @@ typedef int (*json_append_bytes_t)(const char *bytes, size_t len,
218
222
.field_name_len = sizeof(#field_name_) - 1, \
219
223
.offset = offsetof(struct_, field_name_), \
220
224
.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_), \
226
235
}, \
227
- .n_elements = (max_len_), \
228
236
}
229
237
230
238
/**
@@ -276,8 +284,10 @@ typedef int (*json_append_bytes_t)(const char *bytes, size_t len,
276
284
.field_name_len = (sizeof(json_field_name_) - 1), \
277
285
.offset = offsetof(struct_, struct_field_name_), \
278
286
.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
+ }, \
281
291
}
282
292
283
293
/**
@@ -309,11 +319,13 @@ typedef int (*json_append_bytes_t)(const char *bytes, size_t len,
309
319
.field_name_len = sizeof(json_field_name_) - 1, \
310
320
.offset = offsetof(struct_, struct_field_name_), \
311
321
.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_), \
315
328
}, \
316
- .n_elements = (max_len_), \
317
329
}
318
330
319
331
/**
@@ -373,8 +385,10 @@ typedef int (*json_append_bytes_t)(const char *bytes, size_t len,
373
385
.type = JSON_TOK_LIST_START, \
374
386
.element_descr = &(struct json_obj_descr) { \
375
387
.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
+ }, \
378
392
.offset = offsetof(struct_, len_field_), \
379
393
}, \
380
394
.n_elements = (max_len_), \
0 commit comments