fn json_string(value: *const c_char) -> *mut JsonT;
fn json_integer(val: u64) -> *mut JsonT;
+ fn SCJsonDecref(value: *mut JsonT);
fn SCJsonBool(val: bool) -> *mut JsonT;
}
impl Json {
+ pub fn decref(val: Json) {
+ unsafe{SCJsonDecref(val.js)};
+ }
+
pub fn object() -> Json {
return Json{
js: unsafe{json_object()},
}
}
+ pub fn string(val: &str) -> Json {
+ return Json{
+ js: unsafe{json_string(to_cstring(val.as_bytes()).as_ptr())}
+ };
+ }
+
+ pub fn string_from_bytes(val: &[u8]) -> Json {
+ return Json{
+ js: unsafe{json_string(to_cstring(val).as_ptr())}
+ };
+ }
+
pub fn unwrap(&self) -> *mut JsonT {
return self.js;
}
return (val ? json_true() : json_false());
}
+/**
+ * Wrap json_decref. This is mainly to expose this function to Rust as its
+ * defined in the Jansson header file as an inline function.
+ */
+void SCJsonDecref(json_t *json)
+{
+ json_decref(json);
+}
+
/* Default Sensor ID value */
static int64_t sensor_id = -1; /* -1 = not defined */