mochi_rs/imports/
json.rs

1use super::core::PtrRef;
2use super::error::{Result, MochiError};
3
4#[link(wasm_import_module = "json")]
5// #[link(name = "swift-bindings", kind = "static")]
6extern "C" {
7    fn json_parse(bytes: i32, size: i32) -> i32;
8}
9
10pub type JsonValue = PtrRef;
11
12pub fn parse<T: AsRef<[u8]>>(buf: T) -> Result<JsonValue> {
13    let buf = buf.as_ref();
14    let ptr: i32 = unsafe { json_parse(buf.as_ptr() as i32, buf.len() as i32) };
15    match ptr {
16        -1 => Err(MochiError::JsonParseError),
17        _ => Ok(PtrRef::new(ptr))
18    }
19}