Esempio n. 1
0
int w_bser_dump(const bser_ctx_t* ctx, json_t *json, void *data)
{
  int type = json_typeof(json);

  if (!is_bser_version_supported(ctx)) {
    return -1;
  }

  switch (type) {
    case JSON_NULL:
      return ctx->dump(&bser_null, sizeof(bser_null), data);
    case JSON_TRUE:
      return ctx->dump(&bser_true, sizeof(bser_true), data);
    case JSON_FALSE:
      return ctx->dump(&bser_false, sizeof(bser_false), data);
    case JSON_REAL:
      return bser_real(ctx, json_real_value(json), data);
    case JSON_INTEGER:
      return bser_int(ctx, json_integer_value(json), data);
    case JSON_STRING:
      return bser_bytestring(ctx, json_string_value(json), data);
    case JSON_ARRAY:
      return bser_array(ctx, json, data);
    case JSON_OBJECT:
      return bser_object(ctx, json, data);
    default:
      return -1;
  }
}
Esempio n. 2
0
int w_bser_dump(json_t *json, json_dump_callback_t dump, void *data)
{
    int type = json_typeof(json);

    switch (type) {
    case JSON_NULL:
        return dump(&bser_null, sizeof(bser_null), data);
    case JSON_TRUE:
        return dump(&bser_true, sizeof(bser_true), data);
    case JSON_FALSE:
        return dump(&bser_false, sizeof(bser_false), data);
    case JSON_REAL:
        return bser_real(json_real_value(json), dump, data);
    case JSON_INTEGER:
        return bser_int(json_integer_value(json), dump, data);
    case JSON_STRING:
        return bser_string(json_string_value(json), dump, data);
    case JSON_ARRAY:
        return bser_array(json, dump, data);
    case JSON_OBJECT:
        return bser_object(json, dump, data);
    default:
        return -1;
    }
}