Github User Fetcher
1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
duktape-1.8.0/src-separate/duk_json.h
Go to the documentation of this file.
1
/*
2
* Defines for JSON, especially duk_bi_json.c.
3
*/
4
5
#ifndef DUK_JSON_H_INCLUDED
6
#define DUK_JSON_H_INCLUDED
7
8
/* Encoding/decoding flags */
9
#define DUK_JSON_FLAG_ASCII_ONLY (1 << 0)
/* escape any non-ASCII characters */
10
#define DUK_JSON_FLAG_AVOID_KEY_QUOTES (1 << 1)
/* avoid key quotes when key is an ASCII Identifier */
11
#define DUK_JSON_FLAG_EXT_CUSTOM (1 << 2)
/* extended types: custom encoding */
12
#define DUK_JSON_FLAG_EXT_COMPATIBLE (1 << 3)
/* extended types: compatible encoding */
13
14
/* How much stack to require on entry to object/array encode */
15
#define DUK_JSON_ENC_REQSTACK 32
16
17
/* How much stack to require on entry to object/array decode */
18
#define DUK_JSON_DEC_REQSTACK 32
19
20
/* How large a loop detection stack to use */
21
#define DUK_JSON_ENC_LOOPARRAY 64
22
23
/* Encoding state. Heap object references are all borrowed. */
24
typedef
struct
{
25
duk_hthread
*thr;
26
duk_bufwriter_ctx
bw;
/* output bufwriter */
27
duk_hobject
*h_replacer;
/* replacer function */
28
duk_hstring
*h_gap;
/* gap (if empty string, NULL) */
29
duk_idx_t
idx_proplist;
/* explicit PropertyList */
30
duk_idx_t
idx_loop;
/* valstack index of loop detection object */
31
duk_small_uint_t
flags;
32
duk_small_uint_t
flag_ascii_only;
33
duk_small_uint_t
flag_avoid_key_quotes;
34
#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
35
duk_small_uint_t
flag_ext_custom;
36
duk_small_uint_t
flag_ext_compatible;
37
duk_small_uint_t
flag_ext_custom_or_compatible;
38
#endif
39
duk_int_t
recursion_depth;
40
duk_int_t
recursion_limit;
41
duk_uint_t
mask_for_undefined;
/* type bit mask: types which certainly produce 'undefined' */
42
#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
43
duk_small_uint_t
stridx_custom_undefined;
44
duk_small_uint_t
stridx_custom_nan;
45
duk_small_uint_t
stridx_custom_neginf;
46
duk_small_uint_t
stridx_custom_posinf;
47
duk_small_uint_t
stridx_custom_function;
48
#endif
49
duk_hobject
*visiting[
DUK_JSON_ENC_LOOPARRAY
];
/* indexed by recursion_depth */
50
}
duk_json_enc_ctx
;
51
52
typedef
struct
{
53
duk_hthread
*thr;
54
const
duk_uint8_t *p;
55
const
duk_uint8_t *p_start;
56
const
duk_uint8_t *p_end;
57
duk_idx_t
idx_reviver;
58
duk_small_uint_t
flags;
59
#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
60
duk_small_uint_t
flag_ext_custom;
61
duk_small_uint_t
flag_ext_compatible;
62
duk_small_uint_t
flag_ext_custom_or_compatible;
63
#endif
64
duk_int_t
recursion_depth;
65
duk_int_t
recursion_limit;
66
}
duk_json_dec_ctx
;
67
68
#endif
/* DUK_JSON_H_INCLUDED */
duk_small_uint_t
unsigned int duk_small_uint_t
Definition
duktape-1.5.2/src-noline/duk_config.h:1808
duk_idx_t
duk_int_t duk_idx_t
Definition
duktape-1.5.2/src-noline/duk_config.h:1830
duk_int_t
duk_int_fast32_t duk_int_t
Definition
duktape-1.5.2/src-noline/duk_config.h:1785
duk_uint_t
duk_uint_fast32_t duk_uint_t
Definition
duktape-1.5.2/src-noline/duk_config.h:1786
DUK_JSON_ENC_LOOPARRAY
#define DUK_JSON_ENC_LOOPARRAY
Definition
duktape-1.8.0/src-separate/duk_json.h:21
duk_bufwriter_ctx
Definition
duktape-1.5.2/src-noline/duktape.c:1840
duk_hobject
Definition
duktape-1.5.2/src-noline/duktape.c:5328
duk_hstring
Definition
duktape-1.5.2/src-noline/duktape.c:4546
duk_hthread
Definition
duktape-1.5.2/src-noline/duktape.c:6190
duk_json_dec_ctx
Definition
duktape-1.5.2/src-noline/duktape.c:8318
duk_json_enc_ctx
Definition
duktape-1.5.2/src-noline/duktape.c:8290
vendor
civetweb
third_party
duktape-1.8.0
src-separate
duk_json.h
Generated by
1.10.0