1use super::*;
5use wasm_bindgen::prelude::*;
6
7mod de;
8mod ser;
9
10pub type Result<T = JsValue> = std::result::Result<T, Error>;
11
12pub fn to_value<T: ::serde::ser::Serialize + ?Sized>(value: &T) -> Result<JsValue> {
14 value.serialize(&ser::Serializer::new())
15}
16
17pub fn from_value<T: ::serde::de::DeserializeOwned>(value: JsValue) -> Result<T> {
19 T::deserialize(de::Deserializer::from(value))
20}
21
22#[wasm_bindgen]
23extern "C" {
24 type ObjectExt;
25
26 #[wasm_bindgen(method, indexing_getter)]
27 fn get_with_ref_key(this: &ObjectExt, key: &JsString) -> JsValue;
28
29 #[wasm_bindgen(method, indexing_setter)]
30 fn set(this: &ObjectExt, key: JsString, value: JsValue);
31}
32
33pub mod preserve {
34 pub(crate) const PRESERVED_VALUE_MAGIC: &str = "1fc430ca-5b7f-4295-92de-33cf2b145d38";
39}
40
41use js_sys::JsString;