annotate extern/libmustach/mustach-jansson.h @ 74:67b3d13a5035

pasterd: make own HTML code for good
author David Demelier <markand@malikania.fr>
date Wed, 15 Mar 2023 19:34:00 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
74
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 Author: José Bollo <jobol@nonadev.net>
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
3
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 https://gitlab.com/jobol/mustach
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
5
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 SPDX-License-Identifier: ISC
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 */
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
8
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 #ifndef _mustach_jansson_h_included_
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 #define _mustach_jansson_h_included_
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
11
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 /*
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * mustach-jansson is intended to make integration of jansson
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * library by providing integrated functions.
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 */
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
16
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 #include <jansson.h>
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 #include "mustach-wrap.h"
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
19
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 /**
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 * Wrap interface used internally by mustach jansson functions.
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 * Can be used for overriding behaviour.
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 */
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 extern const struct mustach_wrap_itf mustach_jansson_wrap_itf;
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 /**
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 * mustach_jansson_file - Renders the mustache 'template' in 'file' for 'root'.
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 *
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 * @template: the template string to instantiate
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 * @length: length of the template or zero if unknown and template null terminated
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 * @root: the root json object to render
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 * @file: the file where to write the result
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 *
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 * Returns 0 in case of success, -1 with errno set in case of system error
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 * a other negative value in case of error.
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 */
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 extern int mustach_jansson_file(const char *template, size_t length, json_t *root, int flags, FILE *file);
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
38
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 /**
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 * mustach_jansson_fd - Renders the mustache 'template' in 'fd' for 'root'.
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 *
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 * @template: the template string to instantiate
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 * @length: length of the template or zero if unknown and template null terminated
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 * @root: the root json object to render
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 * @fd: the file descriptor number where to write the result
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 *
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 * Returns 0 in case of success, -1 with errno set in case of system error
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 * a other negative value in case of error.
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 */
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 extern int mustach_jansson_fd(const char *template, size_t length, json_t *root, int flags, int fd);
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
51
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
52
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 /**
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 * mustach_jansson_mem - Renders the mustache 'template' in 'result' for 'root'.
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 *
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 * @template: the template string to instantiate
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 * @length: length of the template or zero if unknown and template null terminated
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 * @root: the root json object to render
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 * @result: the pointer receiving the result when 0 is returned
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 * @size: the size of the returned result
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 *
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 * Returns 0 in case of success, -1 with errno set in case of system error
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 * a other negative value in case of error.
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 */
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 extern int mustach_jansson_mem(const char *template, size_t length, json_t *root, int flags, char **result, size_t *size);
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
66
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 /**
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 * mustach_jansson_write - Renders the mustache 'template' for 'root' to custom writer 'writecb' with 'closure'.
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 *
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 * @template: the template string to instantiate
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 * @length: length of the template or zero if unknown and template null terminated
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 * @root: the root json object to render
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 * @writecb: the function that write values
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 * @closure: the closure for the write function
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 *
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 * Returns 0 in case of success, -1 with errno set in case of system error
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 * a other negative value in case of error.
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 */
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 extern int mustach_jansson_write(const char *template, size_t length, json_t *root, int flags, mustach_write_cb_t *writecb, void *closure);
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
80
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 /**
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 * mustach_jansson_emit - Renders the mustache 'template' for 'root' to custom emiter 'emitcb' with 'closure'.
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 *
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 * @template: the template string to instantiate
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 * @length: length of the template or zero if unknown and template null terminated
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 * @root: the root json object to render
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 * @emitcb: the function that emit values
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 * @closure: the closure for the write function
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 *
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 * Returns 0 in case of success, -1 with errno set in case of system error
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 * a other negative value in case of error.
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 */
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 extern int mustach_jansson_emit(const char *template, size_t length, json_t *root, int flags, mustach_emit_cb_t *emitcb, void *closure);
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
94
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 #endif
67b3d13a5035 pasterd: make own HTML code for good
David Demelier <markand@malikania.fr>
parents:
diff changeset
96