diff options
Diffstat (limited to 'benchtests/json-lib.h')
-rw-r--r-- | benchtests/json-lib.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/benchtests/json-lib.h b/benchtests/json-lib.h new file mode 100644 index 0000000000..ed703c6066 --- /dev/null +++ b/benchtests/json-lib.h @@ -0,0 +1,47 @@ +/* Simple library for printing JSON data. + Copyright (C) 2014 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef __JSON_LIB_H__ +#define __JSON_LIB_H__ + +#include <stdbool.h> +#include <stdio.h> + +struct json_ctx +{ + FILE *fp; + unsigned int indent_level; + bool first_element; +}; + +typedef struct json_ctx json_ctx_t; + +void json_init (json_ctx_t *ctx, unsigned int indent_level, FILE *fp); +void json_document_begin (json_ctx_t *ctx); +void json_document_end (json_ctx_t *ctx); +void json_attr_object_begin (json_ctx_t *ctx, const char *name); +void json_attr_object_end (json_ctx_t *ctx); +void json_attr_string (json_ctx_t *ctx, const char *name, const char *s); +void json_attr_double (json_ctx_t *ctx, const char *name, double d); +void json_array_begin (json_ctx_t *ctx, const char *name); +void json_array_end (json_ctx_t *ctx); +void json_element_double (json_ctx_t *ctx, double d); +void json_element_object_begin (json_ctx_t *ctx); +void json_element_object_end (json_ctx_t *ctx); + +#endif |