use serde::de::DeserializeOwned;
use serde::ser::Serialize;
use serde_wasm_bindgen::{Deserializer, Error, Serializer};
use wasm_bindgen::JsValue;
pub fn serialize_to_js<T: Serialize + ?Sized>(value: &T) -> Result<JsValue, Error> {
let serializer = Serializer::new().serialize_large_number_types_as_bigints(true);
let output = value.serialize(&serializer)?;
Ok(output)
}
pub fn deserialize_from_js<T: DeserializeOwned>(value: JsValue) -> Result<T, JsValue> {
let value = T::deserialize(Deserializer::from(value))?;
Ok(value)
}