Convert everything to c api

This commit is contained in:
2025-05-23 11:59:50 -04:00
parent f7ad84a79a
commit 1217ded8a7
8 changed files with 130 additions and 89 deletions

View File

@@ -1,8 +1,8 @@
#include <fcntl.h>
#include <memory>
#include <unistd.h>
#include "callbacks.h"
#include "parser3.h"
#include "weaseljson.h"
int main(int argc, char **argv) {
@@ -16,7 +16,8 @@ int main(int argc, char **argv) {
return 1;
}
auto c = noopCallbacks();
parser3::Parser3 parser(&c, nullptr);
std::unique_ptr<WeaselJsonParser, decltype(&WeaselJsonParser_destroy)> parser{
WeaselJsonParser_create(1024, &c, nullptr), WeaselJsonParser_destroy};
for (;;) {
char buf[1024];
int l = read(fd, buf, sizeof(buf));
@@ -24,7 +25,7 @@ int main(int argc, char **argv) {
perror("read");
return 1;
}
switch (parser.parse(buf, l)) {
switch (WeaselJsonParser_parse(parser.get(), buf, l)) {
case WeaselJson_OK:
return 0;
case WeaselJson_AGAIN: