From 421300c27123ca647772dc6d9bd0cabf7f5f9c99 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Wed, 23 Jul 2025 19:39:13 +0200 Subject: refactor: src & pragma once --- include/json.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 include/json.h (limited to 'include/json.h') diff --git a/include/json.h b/include/json.h new file mode 100644 index 0000000..749a3e0 --- /dev/null +++ b/include/json.h @@ -0,0 +1,34 @@ +#pragma once +#include "../include/memory.h" +#include "../include/str.h" +#include "../include/vec.h" + +typedef struct { + Vec keys; // Vec + Vec values; // Vec + size len; +} JSONObject; +typedef enum { + JSON_NULL, + JSON_BOOL, + JSON_INTEGER, + JSON_FLOAT, + JSON_STRING, + JSON_ARRAY, + JSON_OBJECT +} JSONType; +typedef struct { + JSONType type; + union { + bool boolean; + i32 integer; + f32 floating; + Vec array; // Vec + Str string; + JSONObject object; + } as; +} JSON; +JSON *JSONObject_get(JSONObject obj, Str key); +i32 JSON_fprint(FILE *w, JSON json); +JSON JSON_parse(Arena *a, byte *src); +JSON JSON_Int(Arena *a, i32 val); -- cgit v1.3