VALUE oj_strict_parse_cstr(int argc, VALUE *argv, char *json, size_t len) { struct _ParseInfo pi; pi.options = oj_default_options; pi.handler = Qnil; pi.err_class = Qnil; oj_set_strict_callbacks(&pi); return oj_pi_parse(argc, argv, &pi, json, len, 1); }
VALUE oj_compat_parse_cstr(int argc, VALUE *argv, char *json, size_t len) { struct _ParseInfo pi; pi.options = oj_default_options; oj_set_strict_callbacks(&pi); pi.end_hash = end_hash; pi.hash_set_cstr = hash_set_cstr; return oj_pi_parse(argc, argv, &pi, json, len); }
VALUE oj_strict_parse(int argc, VALUE *argv, VALUE self) { struct _ParseInfo pi; pi.options = oj_default_options; pi.handler = Qnil; pi.err_class = Qnil; oj_set_strict_callbacks(&pi); if (T_STRING == rb_type(*argv)) { return oj_pi_parse(argc, argv, &pi, 0, 0, 1); } else { return oj_pi_sparse(argc, argv, &pi, 0); } }
void oj_set_compat_callbacks(ParseInfo pi) { oj_set_strict_callbacks(pi); pi->end_hash = end_hash; pi->hash_set_cstr = hash_set_cstr; }