wsdom_core/js/
nullable.rs1use crate::{js::value::JsValue, js_cast::JsCast, serialize::UseInJsCode};
2
3include!("impl_basic.rs");
4
5impl_basic!(JsNullish);
6
7impl_basic!(JsNullable; T; JsValue);
8
9impl JsNullish {
10 pub fn into_nullable_ref<T>(&self) -> &JsNullable<T> {
11 JsCast::unchecked_ref(self)
12 }
13 pub fn into_nullable<T>(self) -> JsNullable<T> {
14 JsCast::unchecked_into(self)
15 }
16}
17
18impl<T> JsNullable<T>
19where
20 T: JsCast,
21{
22 pub fn from_nonnull(value: T) -> Self {
23 JsCast::unchecked_into(value)
24 }
25 pub fn from_nonnull_ref(value: &T) -> &Self {
26 JsCast::unchecked_ref(value)
27 }
28 pub fn unwrap(self) -> T {
29 JsCast::unchecked_into(self)
30 }
31 pub fn unwrap_ref(&self) -> &T {
32 JsCast::unchecked_ref(self)
33 }
34}