static int bser_array(const bser_ctx_t *ctx, const json_t *array, void *data) { size_t n = json_array_size(array); size_t i; json_t *templ; if (!is_bser_version_supported(ctx)) { return -1; } templ = json_array_get_template(array); if (templ) { return bser_template(ctx, array, templ, data); } if (ctx->dump(&bser_array_hdr, sizeof(bser_array_hdr), data)) { return -1; } if (bser_int(ctx, n, data)) { return -1; } for (i = 0; i < n; i++) { json_t *val = json_array_get(array, i); if (w_bser_dump(ctx, val, data)) { return -1; } } return 0; }
static int bser_array(const json_t *array, json_dump_callback_t dump, void *data) { int n = json_array_size(array); int i; json_t *templ; templ = json_array_get_template(array); if (templ) { return bser_template(array, templ, dump, data); } if (dump(&bser_array_hdr, sizeof(bser_array_hdr), data)) { return -1; } if (bser_int(n, dump, data)) { return -1; } for (i = 0; i < n; i++) { json_t *val = json_array_get(array, i); if (w_bser_dump(val, dump, data)) { return -1; } } return 0; }