From 3654ce578e6fff53950874adf7e0e4ae0a6eb956 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 3 May 2026 17:29:12 +0900 Subject: refactor: organize directory structure --- src/lib/json.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/lib/json.h (limited to 'src/lib/json.h') diff --git a/src/lib/json.h b/src/lib/json.h new file mode 100644 index 0000000..9322901 --- /dev/null +++ b/src/lib/json.h @@ -0,0 +1,32 @@ +#ifndef DUCC_JSON_H +#define DUCC_JSON_H + +struct JsonBuilder; +typedef struct JsonBuilder JsonBuilder; + +JsonBuilder* jsonbuilder_new(); +const char* jsonbuilder_get_output(JsonBuilder* b); + +void jsonbuilder_object_start(JsonBuilder* b); +void jsonbuilder_object_end(JsonBuilder* b); +void jsonbuilder_object_member_start(JsonBuilder* b, const char* key); +void jsonbuilder_object_member_end(JsonBuilder* b); + +void jsonbuilder_array_start(JsonBuilder* b); +void jsonbuilder_array_end(JsonBuilder* b); +void jsonbuilder_array_element_start(JsonBuilder* b); +void jsonbuilder_array_element_end(JsonBuilder* b); + +void jsonbuilder_null(JsonBuilder* b); +void jsonbuilder_boolean(JsonBuilder* b, bool value); +void jsonbuilder_integer(JsonBuilder* b, int value); +void jsonbuilder_string(JsonBuilder* b, const char* value); + +#define JSON_DUMP(x, f) \ + do { \ + JsonBuilder* _builder = jsonbuilder_new(); \ + f(_builder, (x)); \ + fprintf(stderr, "%s\n", jsonbuilder_get_output(_builder)); \ + } while (0) + +#endif -- cgit v1.3.1