blob: 63e9f5d543d898d94259e395e8b6242330fd4b78 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
module main
import json
struct UseJson {
x int
}
fn suppress_json_warning() {
json.encode(UseJson{})
}
// struct C.cJSON {}
fn C.cJSON_CreateObject() &C.cJSON
fn C.cJSON_CreateArray() &C.cJSON
// fn C.cJSON_CreateBool(bool) &C.cJSON
fn C.cJSON_CreateTrue() &C.cJSON
fn C.cJSON_CreateFalse() &C.cJSON
fn C.cJSON_CreateNull() &C.cJSON
// fn C.cJSON_CreateNumber() &C.cJSON
// fn C.cJSON_CreateString() &C.cJSON
fn C.cJSON_CreateRaw(&byte) &C.cJSON
fn C.cJSON_IsInvalid(voidptr) bool
fn C.cJSON_IsFalse(voidptr) bool
// fn C.cJSON_IsTrue(voidptr) bool
fn C.cJSON_IsBool(voidptr) bool
fn C.cJSON_IsNull(voidptr) bool
fn C.cJSON_IsNumber(voidptr) bool
fn C.cJSON_IsString(voidptr) bool
fn C.cJSON_IsArray(voidptr) bool
fn C.cJSON_IsObject(voidptr) bool
fn C.cJSON_IsRaw(voidptr) bool
fn C.cJSON_AddItemToObject(voidptr, &byte, voidptr)
fn C.cJSON_AddItemToArray(voidptr, voidptr)
fn C.cJSON_Delete(voidptr)
fn C.cJSON_Print(voidptr) &byte
[inline]
fn create_object() &C.cJSON {
return C.cJSON_CreateObject()
}
[inline]
fn create_array() &C.cJSON {
return C.cJSON_CreateArray()
}
[inline]
fn create_string(val string) &C.cJSON {
return C.cJSON_CreateString(val.str)
}
[inline]
fn create_number(val f64) &C.cJSON {
return C.cJSON_CreateNumber(val)
}
[inline]
fn create_bool(val bool) &C.cJSON {
return C.cJSON_CreateBool(val)
}
[inline]
fn create_true() &C.cJSON {
return C.cJSON_CreateTrue()
}
[inline]
fn create_false() &C.cJSON {
return C.cJSON_CreateFalse()
}
[inline]
fn create_null() &C.cJSON {
return C.cJSON_CreateNull()
}
[inline]
fn delete(b voidptr) {
C.cJSON_Delete(b)
}
[inline]
fn add_item_to_object(obj &C.cJSON, key string, item &C.cJSON) {
C.cJSON_AddItemToObject(obj, key.str, item)
}
[inline]
fn add_item_to_array(obj &C.cJSON, item &C.cJSON) {
C.cJSON_AddItemToArray(obj, item)
}
fn json_print(json &C.cJSON) string {
s := C.cJSON_Print(json)
return unsafe { tos3(s) }
}
|