Mercurial > paster
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 |
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 |