mirror of
https://github.com/vlang/v.git
synced 2025-09-14 06:52:36 +03:00
75 lines
1.2 KiB
V
75 lines
1.2 KiB
V
module main
|
|
|
|
import json.cjson
|
|
|
|
type Node = C.cJSON
|
|
|
|
fn as_n(p &cjson.Node) &Node {
|
|
return unsafe { &Node(p) }
|
|
}
|
|
|
|
fn as_c(p &Node) &cjson.Node {
|
|
return unsafe { &cjson.Node(p) }
|
|
}
|
|
|
|
@[inline]
|
|
fn create_object() &Node {
|
|
return as_n(cjson.create_object())
|
|
}
|
|
|
|
@[inline]
|
|
fn create_array() &Node {
|
|
return as_n(cjson.create_array())
|
|
}
|
|
|
|
@[inline]
|
|
fn create_string(val string) &Node {
|
|
return as_n(cjson.create_string(val))
|
|
}
|
|
|
|
@[inline]
|
|
fn create_number(val f64) &Node {
|
|
return as_n(cjson.create_number(val))
|
|
}
|
|
|
|
@[inline]
|
|
fn create_bool(val bool) &Node {
|
|
return as_n(cjson.create_bool(val))
|
|
}
|
|
|
|
@[inline]
|
|
fn create_true() &Node {
|
|
return as_n(cjson.create_true())
|
|
}
|
|
|
|
@[inline]
|
|
fn create_false() &Node {
|
|
return as_n(cjson.create_false())
|
|
}
|
|
|
|
@[inline]
|
|
fn create_null() &Node {
|
|
return as_n(cjson.create_null())
|
|
}
|
|
|
|
@[inline]
|
|
fn delete(b voidptr) {
|
|
unsafe { cjson.delete(b) }
|
|
}
|
|
|
|
@[inline]
|
|
fn add_item_to_object(mut obj Node, key string, item &Node) {
|
|
mut o := unsafe { &cjson.Node(obj) }
|
|
o.add_item_to_object(key, item)
|
|
}
|
|
|
|
@[inline]
|
|
fn add_item_to_array(mut obj Node, item &Node) {
|
|
mut o := as_c(obj)
|
|
o.add_item_to_array(item)
|
|
}
|
|
|
|
fn json_print(mut obj Node) string {
|
|
mut o := as_c(obj)
|
|
return o.print()
|
|
}
|