Files
json-parser/include/json_value.h
olemorud 9a88d1cbdc Refactor
Move json_value and obj_t to same file
 - Rename json_obj.* -> json_value.*
 - Move `print_json_value(...)` to json_value.*

Move `err_ctx(...)` to util.*

parse.h now only exposes `parse_json_value(...)`
2023-04-24 23:44:45 +02:00

42 lines
736 B
C

#ifndef _JSON_VALUE_H
#define _JSON_VALUE_H
#include <stdbool.h> // bool
#define OBJ_SIZE 64
typedef struct obj_entry {
char const* key;
struct json_value* val;
struct obj_entry* next;
} * __p_obj_entry;
typedef __p_obj_entry obj_t[OBJ_SIZE];
enum json_type { object,
array,
string,
number,
boolean,
null };
struct json_value {
enum json_type type;
union {
obj_t* object;
struct json_value** array;
char* string;
bool boolean;
double number;
};
};
void* obj_at(obj_t m, char* const key);
bool obj_insert(obj_t m, char* const key, struct json_value* value);
void obj_delete(obj_t m);
void print_json(struct json_value val, int indent);
#endif