JsData

Trait JsData 

Source
pub trait JsData { }
Expand description

Represents a type that can be stored inside a JsObject.

This can be automatically derived using a macro.

§Example

use boa_engine::{Finalize, JsData, JsObject, Trace};

#[derive(Trace, Finalize, JsData)]
struct CustomStruct {
    #[unsafe_ignore_trace]
    counter: usize,
}

let object =
    JsObject::from_proto_and_data(None, CustomStruct { counter: 5 });

assert_eq!(object.downcast_ref::<CustomStruct>().unwrap().counter, 5);

Implementations on Foreign Types§

Source§

impl JsData for bool

Source§

impl JsData for char

Source§

impl JsData for f32

Source§

impl JsData for f64

Source§

impl JsData for i8

Source§

impl JsData for i16

Source§

impl JsData for i32

Source§

impl JsData for i64

Source§

impl JsData for i128

Source§

impl JsData for isize

Source§

impl JsData for u8

Source§

impl JsData for u16

Source§

impl JsData for u32

Source§

impl JsData for u64

Source§

impl JsData for u128

Source§

impl JsData for ()

Source§

impl JsData for usize

Source§

impl JsData for String

Source§

impl JsData for TypeId

Source§

impl JsData for NonZero<i8>

Source§

impl JsData for NonZero<i16>

Source§

impl JsData for NonZero<i32>

Source§

impl JsData for NonZero<i64>

Source§

impl JsData for NonZero<i128>

Source§

impl JsData for NonZero<isize>

Source§

impl JsData for NonZero<u8>

Source§

impl JsData for NonZero<u16>

Source§

impl JsData for NonZero<u32>

Source§

impl JsData for NonZero<u64>

Source§

impl JsData for NonZero<u128>

Source§

impl JsData for NonZero<usize>

Source§

impl JsData for AtomicBool

Source§

impl JsData for AtomicI8

Source§

impl JsData for AtomicI16

Source§

impl JsData for AtomicI32

Source§

impl JsData for AtomicI64

Source§

impl JsData for AtomicIsize

Source§

impl JsData for AtomicU8

Source§

impl JsData for AtomicU16

Source§

impl JsData for AtomicU32

Source§

impl JsData for AtomicU64

Source§

impl JsData for AtomicUsize

Source§

impl JsData for Path

Source§

impl JsData for PathBuf

Source§

impl JsData for Locale

Source§

impl<A> JsData for (A,)

Source§

impl<A, B> JsData for (A, B)

Source§

impl<A, B, C> JsData for (A, B, C)

Source§

impl<A, B, C, D> JsData for (A, B, C, D)

Source§

impl<A, B, C, D, E> JsData for (A, B, C, D, E)

Source§

impl<A, B, C, D, E, F> JsData for (A, B, C, D, E, F)

Source§

impl<A, B, C, D, E, F, G> JsData for (A, B, C, D, E, F, G)

Source§

impl<A, B, C, D, E, F, G, H> JsData for (A, B, C, D, E, F, G, H)

Source§

impl<A, B, C, D, E, F, G, H, I> JsData for (A, B, C, D, E, F, G, H, I)

Source§

impl<A, B, C, D, E, F, G, H, I, J> JsData for (A, B, C, D, E, F, G, H, I, J)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K> JsData for (A, B, C, D, E, F, G, H, I, J, K)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L> JsData for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

impl<K, V> JsData for BTreeMap<K, V>

Source§

impl<K, V, S> JsData for HashMap<K, V, S>
where K: Eq + Hash, S: BuildHasher,

Source§

impl<K, V, S> JsData for HashMap<K, V, S>
where K: Eq + Hash, S: BuildHasher,

Source§

impl<Ret> JsData for fn() -> Ret

Source§

impl<Ret> JsData for extern "C" fn() -> Ret

Source§

impl<Ret> JsData for unsafe fn() -> Ret

Source§

impl<Ret> JsData for unsafe extern "C" fn() -> Ret

Source§

impl<Ret, A> JsData for fn(A) -> Ret

Source§

impl<Ret, A> JsData for extern "C" fn(A) -> Ret

Source§

impl<Ret, A> JsData for extern "C" fn(A, ...) -> Ret

Source§

impl<Ret, A> JsData for unsafe fn(A) -> Ret

Source§

impl<Ret, A> JsData for unsafe extern "C" fn(A) -> Ret

Source§

impl<Ret, A> JsData for unsafe extern "C" fn(A, ...) -> Ret

Source§

impl<Ret, A, B> JsData for fn(A, B) -> Ret

Source§

impl<Ret, A, B> JsData for extern "C" fn(A, B) -> Ret

Source§

impl<Ret, A, B> JsData for extern "C" fn(A, B, ...) -> Ret

Source§

impl<Ret, A, B> JsData for unsafe fn(A, B) -> Ret

Source§

impl<Ret, A, B> JsData for unsafe extern "C" fn(A, B) -> Ret

Source§

impl<Ret, A, B> JsData for unsafe extern "C" fn(A, B, ...) -> Ret

Source§

impl<Ret, A, B, C> JsData for fn(A, B, C) -> Ret

Source§

impl<Ret, A, B, C> JsData for extern "C" fn(A, B, C) -> Ret

Source§

impl<Ret, A, B, C> JsData for extern "C" fn(A, B, C, ...) -> Ret

Source§

impl<Ret, A, B, C> JsData for unsafe fn(A, B, C) -> Ret

Source§

impl<Ret, A, B, C> JsData for unsafe extern "C" fn(A, B, C) -> Ret

Source§

impl<Ret, A, B, C> JsData for unsafe extern "C" fn(A, B, C, ...) -> Ret

Source§

impl<Ret, A, B, C, D> JsData for fn(A, B, C, D) -> Ret

Source§

impl<Ret, A, B, C, D> JsData for extern "C" fn(A, B, C, D) -> Ret

Source§

impl<Ret, A, B, C, D> JsData for extern "C" fn(A, B, C, D, ...) -> Ret

Source§

impl<Ret, A, B, C, D> JsData for unsafe fn(A, B, C, D) -> Ret

Source§

impl<Ret, A, B, C, D> JsData for unsafe extern "C" fn(A, B, C, D) -> Ret

Source§

impl<Ret, A, B, C, D> JsData for unsafe extern "C" fn(A, B, C, D, ...) -> Ret

Source§

impl<Ret, A, B, C, D, E> JsData for fn(A, B, C, D, E) -> Ret

Source§

impl<Ret, A, B, C, D, E> JsData for extern "C" fn(A, B, C, D, E) -> Ret

Source§

impl<Ret, A, B, C, D, E> JsData for extern "C" fn(A, B, C, D, E, ...) -> Ret

Source§

impl<Ret, A, B, C, D, E> JsData for unsafe fn(A, B, C, D, E) -> Ret

Source§

impl<Ret, A, B, C, D, E> JsData for unsafe extern "C" fn(A, B, C, D, E) -> Ret

Source§

impl<Ret, A, B, C, D, E> JsData for unsafe extern "C" fn(A, B, C, D, E, ...) -> Ret

Source§

impl<Ret, A, B, C, D, E, F> JsData for fn(A, B, C, D, E, F) -> Ret

Source§

impl<Ret, A, B, C, D, E, F> JsData for extern "C" fn(A, B, C, D, E, F) -> Ret

Source§

impl<Ret, A, B, C, D, E, F> JsData for extern "C" fn(A, B, C, D, E, F, ...) -> Ret

Source§

impl<Ret, A, B, C, D, E, F> JsData for unsafe fn(A, B, C, D, E, F) -> Ret

Source§

impl<Ret, A, B, C, D, E, F> JsData for unsafe extern "C" fn(A, B, C, D, E, F) -> Ret

Source§

impl<Ret, A, B, C, D, E, F> JsData for unsafe extern "C" fn(A, B, C, D, E, F, ...) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G> JsData for fn(A, B, C, D, E, F, G) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G> JsData for extern "C" fn(A, B, C, D, E, F, G) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G> JsData for extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G> JsData for unsafe fn(A, B, C, D, E, F, G) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G> JsData for unsafe extern "C" fn(A, B, C, D, E, F, G) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G> JsData for unsafe extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H> JsData for fn(A, B, C, D, E, F, G, H) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H> JsData for extern "C" fn(A, B, C, D, E, F, G, H) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H> JsData for extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H> JsData for unsafe fn(A, B, C, D, E, F, G, H) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H> JsData for unsafe extern "C" fn(A, B, C, D, E, F, G, H) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H> JsData for unsafe extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I> JsData for fn(A, B, C, D, E, F, G, H, I) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I> JsData for extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I> JsData for extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I> JsData for unsafe fn(A, B, C, D, E, F, G, H, I) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I> JsData for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I> JsData for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J> JsData for fn(A, B, C, D, E, F, G, H, I, J) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J> JsData for extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J> JsData for extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J> JsData for unsafe fn(A, B, C, D, E, F, G, H, I, J) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J> JsData for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J> JsData for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> JsData for fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> JsData for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> JsData for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> JsData for unsafe fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> JsData for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> JsData for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> JsData for fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> JsData for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> JsData for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> JsData for unsafe fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> JsData for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret

Source§

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> JsData for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret

Source§

impl<T> JsData for Cow<'static, T>
where T: ToOwned + ?Sized,

Source§

impl<T> JsData for Option<T>

Source§

impl<T> JsData for Box<T>
where T: ?Sized,

Source§

impl<T> JsData for BinaryHeap<T>
where T: Ord,

Source§

impl<T> JsData for BTreeSet<T>

Source§

impl<T> JsData for LinkedList<T>
where T: Eq + Hash,

Source§

impl<T> JsData for VecDeque<T>

Source§

impl<T> JsData for Rc<T>
where T: ?Sized,

Source§

impl<T> JsData for Vec<T>

Source§

impl<T> JsData for Cell<Option<T>>

Source§

impl<T> JsData for PhantomData<T>

Source§

impl<T> JsData for ThinVec<T>

Source§

impl<T, E> JsData for Result<T, E>

Source§

impl<T, S> JsData for HashSet<T, S>
where T: Eq + Hash, S: BuildHasher,

Source§

impl<T, const N: usize> JsData for [T; N]

Implementors§

Source§

impl JsData for ErrorKind

Source§

impl JsData for TextDecoder

Source§

impl JsData for TextEncoder

Source§

impl JsData for ArrayBuffer

Source§

impl JsData for SharedArrayBuffer

Source§

impl JsData for AsyncGenerator

Source§

impl JsData for DataView

Source§

impl JsData for Date

Source§

impl JsData for Error

Source§

impl JsData for BoundFunction

Source§

impl JsData for OrdinaryFunction

Source§

impl JsData for Generator

Source§

impl JsData for Intl

Source§

impl JsData for OrdinaryObject

Source§

impl JsData for Promise

Source§

impl JsData for Proxy

Source§

impl JsData for RegExp

Source§

impl JsData for OrderedSet

Source§

impl JsData for Duration

Source§

impl JsData for Instant

Source§

impl JsData for PlainDate

Source§

impl JsData for PlainDateTime

Source§

impl JsData for PlainMonthDay

Source§

impl JsData for PlainTime

Source§

impl JsData for PlainYearMonth

Source§

impl JsData for ZonedDateTime

Source§

impl JsData for TypedArray

Source§

impl JsData for JsHeaders

Source§

impl JsData for JsRequest

Source§

impl JsData for JsResponse

Source§

impl JsData for JsResponseOptions

Source§

impl JsData for BlockingReqwestFetcher

Source§

impl JsData for ErrorFetcher

Source§

impl JsData for TestFetcher

Source§

impl JsData for OnMessageQueueSender

Source§

impl JsData for ModuleNamespace

Source§

impl JsData for NativeFunctionObject

Source§

impl JsData for ErasedObjectData

Source§

impl JsData for Console

Source§

impl JsData for JsBigInt

Source§

impl JsData for JsString

Source§

impl JsData for JsSymbol

Source§

impl JsData for Url

Source§

impl<K, V> JsData for WeakMap<K, V>
where K: Trace + ?Sized, V: Trace,

Source§

impl<T> JsData for Gc<T>
where T: Trace + ?Sized,

Source§

impl<T> JsData for GcRefCell<T>
where T: Trace + ?Sized,

Source§

impl<T> JsData for WeakGc<T>
where T: Trace + ?Sized,

Source§

impl<T> JsData for Convert<T>
where T: TryFromJs,

Source§

impl<T, V> JsData for Ephemeron<T, V>
where T: Trace + ?Sized, V: Trace,

Source§

impl<V> JsData for OrderedMap<V>