1 /* 2 * JSON Writer 3 * 4 * Copyright (c) 2020 Red Hat Inc. 5 * 6 * Authors: 7 * Markus Armbruster <armbru@redhat.com> 8 * 9 * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. 10 * See the COPYING.LIB file in the top-level directory. 11 * 12 */ 13 14 #ifndef JSON_WRITER_H 15 #define JSON_WRITER_H 16 17 typedef struct JSONWriter JSONWriter; 18 19 JSONWriter *json_writer_new(bool pretty); 20 const char *json_writer_get(JSONWriter *); 21 GString *json_writer_get_and_free(JSONWriter *); 22 void json_writer_free(JSONWriter *); 23 24 G_DEFINE_AUTOPTR_CLEANUP_FUNC(JSONWriter, json_writer_free) 25 26 void json_writer_start_object(JSONWriter *, const char *name); 27 void json_writer_end_object(JSONWriter *); 28 void json_writer_start_array(JSONWriter *, const char *name); 29 void json_writer_end_array(JSONWriter *); 30 void json_writer_bool(JSONWriter *, const char *name, bool val); 31 void json_writer_null(JSONWriter *, const char *name); 32 void json_writer_int64(JSONWriter *, const char *name, int64_t val); 33 void json_writer_uint64(JSONWriter *, const char *name, uint64_t val); 34 void json_writer_double(JSONWriter *, const char *name, double val); 35 void json_writer_str(JSONWriter *, const char *name, const char *str); 36 37 #endif 38