wsdom-core 0.0.1

for the wsdom crate
Documentation
use crate::{js::value::JsValue, js_cast::JsCast, serialize::UseInJsCode};

include!("impl_basic.rs");

impl_basic!(JsNullish);

impl_basic!(JsNullable; T; JsValue);

impl JsNullish {
    pub fn into_nullable_ref<T>(&self) -> &JsNullable<T> {
        JsCast::unchecked_ref(self)
    }
    pub fn into_nullable<T>(self) -> JsNullable<T> {
        JsCast::unchecked_into(self)
    }
}

impl<T> JsNullable<T>
where
    T: JsCast,
{
    pub fn from_nonnull(value: T) -> Self {
        JsCast::unchecked_into(value)
    }
    pub fn from_nonnull_ref(value: &T) -> &Self {
        JsCast::unchecked_ref(value)
    }
    pub fn unwrap(self) -> T {
        JsCast::unchecked_into(self)
    }
    pub fn unwrap_ref(&self) -> &T {
        JsCast::unchecked_ref(self)
    }
}