diff options
author | Eric Haszlakiewicz <erh+git@nimenees.com> | 2020-04-06 13:55:27 +0000 |
---|---|---|
committer | Eric Haszlakiewicz <erh+git@nimenees.com> | 2020-04-06 13:55:27 +0000 |
commit | 19bbf2c069c636411d37d775fe19f0c4ba1e97fa (patch) | |
tree | ec3220444e4c3b894f36f14a7570b360bf637e69 /json_types.h | |
parent | 5e19c26caeb698dda682720f37b0d63dd502bf5c (diff) | |
download | json-c-19bbf2c069c636411d37d775fe19f0c4ba1e97fa.tar.gz |
Add includes and split off json_types.h to help ensure that headers can be included in any order.
Diffstat (limited to 'json_types.h')
-rw-r--r-- | json_types.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/json_types.h b/json_types.h new file mode 100644 index 0000000..67f4497 --- /dev/null +++ b/json_types.h @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2020 Eric Hawicz + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the MIT license. See COPYING for details. + */ + +#ifndef _json_types_h_ +#define _json_types_h_ + +/** + * @file + * @brief Basic types used in a few places in json-c, but you should include "json_object.h" instead. + */ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef JSON_EXPORT +#if defined(_MSC_VER) +#define JSON_EXPORT __declspec(dllexport) +#else +#define JSON_EXPORT extern +#endif +#endif + +struct printbuf; + +/** + * A structure to use with json_object_object_foreachC() loops. + * Contains key, val and entry members. + */ +struct json_object_iter +{ + char *key; + struct json_object *val; + struct lh_entry *entry; +}; +typedef struct json_object_iter json_object_iter; + +typedef int json_bool; + +/** + * @brief The core type for all type of JSON objects handled by json-c + */ +typedef struct json_object json_object; + +/** + * Type of custom user delete functions. See json_object_set_serializer. + */ +typedef void(json_object_delete_fn)(struct json_object *jso, void *userdata); + +/** + * Type of a custom serialization function. See json_object_set_serializer. + */ +typedef int(json_object_to_json_string_fn)(struct json_object *jso, struct printbuf *pb, int level, + int flags); + +/* supported object types */ + +typedef enum json_type +{ + /* If you change this, be sure to update json_type_to_name() too */ + json_type_null, + json_type_boolean, + json_type_double, + json_type_int, + json_type_object, + json_type_array, + json_type_string +} json_type; + +#ifdef __cplusplus +} +#endif + +#endif |