#![allow(clippy::wrong_self_convention)]
pub use e173_ts::*;
use wasm_bindgen::{JsCast, JsValue};
pub trait Tsify {
type JsType: JsCast;
const DECL: &'static str;
const MAPS_AS_OBJECTS: bool;
#[inline]
fn into_js(&self) -> Result<Self::JsType, serde_wasm_bindgen::Error>
where
Self: serde::Serialize,
{
if Self::MAPS_AS_OBJECTS {
self.serialize(&serde_wasm_bindgen::Serializer::new().serialize_maps_as_objects(true))
} else {
serde_wasm_bindgen::to_value(self)
}
.map(JsCast::unchecked_from_js)
}
#[inline]
fn from_js<T: Into<JsValue>>(js: T) -> Result<Self, serde_wasm_bindgen::Error>
where
Self: serde::de::DeserializeOwned,
{
serde_wasm_bindgen::from_value(js.into())
}
}