#include "parser3.h" #include "weaseljson.h" using namespace parser3; extern "C" { __attribute__((visibility("default"))) WeaselJsonParser * WeaselJsonParser_create(int stackSize, const WeaselJsonCallbacks *callbacks, void *userdata, int flags) { auto *buf = malloc(sizeof(Parser3) + stackSize * sizeof(*Parser3::stackPtr)); if (buf == nullptr) { return nullptr; } return (WeaselJsonParser *)new (buf) Parser3{callbacks, userdata, stackSize, flags}; } __attribute__((visibility("default"))) void WeaselJsonParser_reset(WeaselJsonParser *parser) { ((Parser3 *)parser)->reset(); } __attribute__((visibility("default"))) void WeaselJsonParser_destroy(WeaselJsonParser *parser) { ((Parser3 *)parser)->~Parser3(); free(parser); } __attribute__((visibility("default"))) WeaselJsonStatus WeaselJsonParser_parse(WeaselJsonParser *parser, char *buf, int len) { return ((Parser3 *)parser)->parse(buf, len); } }