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}