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 JSONWriter *json_writer_new(bool pretty); 18 const char *json_writer_get(JSONWriter *); 19 GString *json_writer_get_and_free(JSONWriter *); 20 void json_writer_free(JSONWriter *); 21 22 G_DEFINE_AUTOPTR_CLEANUP_FUNC(JSONWriter, json_writer_free) 23 24 void json_writer_start_object(JSONWriter *, const char *name); 25 void json_writer_end_object(JSONWriter *); 26 void json_writer_start_array(JSONWriter *, const char *name); 27 void json_writer_end_array(JSONWriter *); 28 void json_writer_bool(JSONWriter *, const char *name, bool val); 29 void json_writer_null(JSONWriter *, const char *name); 30 void json_writer_int64(JSONWriter *, const char *name, int64_t val); 31 void json_writer_uint64(JSONWriter *, const char *name, uint64_t val); 32 void json_writer_double(JSONWriter *, const char *name, double val); 33 void json_writer_str(JSONWriter *, const char *name, const char *str); 34 35 #endif 36