static int read_map(int fd, uint32_t len, struct rmsgpack_read_callbacks *callbacks, void *data) { int rv; unsigned i; if (callbacks->read_map_start && (rv = callbacks->read_map_start(len, data)) < 0) return rv; for (i = 0; i < len; i++) { if ((rv = rmsgpack_read(fd, callbacks, data)) < 0) return rv; if ((rv = rmsgpack_read(fd, callbacks, data)) < 0) return rv; } return 0; }
int rmsgpack_dom_read(FILE *fp, struct rmsgpack_dom_value *out) { struct dom_reader_state s = {0}; int rv = 0; s.stack[0] = out; rv = rmsgpack_read(fp, &dom_reader_callbacks, &s); if (rv < 0) rmsgpack_dom_value_free(out); return rv; }
int main(void) { struct stub_state state; RFILE *fd = retro_fopen("test.msgpack", RFILE_MODE_READ, 0); state.i = 0; state.stack[0] = 0; rmsgpack_read(fd, &stub_callbacks, &state); printf("Test succeeded.\n"); retro_fclose(fd); return 0; }