Skip to main content

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);

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl JsData for ()

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 Locale

Source§

impl JsData for NonZeroI8

Source§

impl JsData for NonZeroI16

Source§

impl JsData for NonZeroI32

Source§

impl JsData for NonZeroI64

Source§

impl JsData for NonZeroI128

Source§

impl JsData for NonZeroIsize

Source§

impl JsData for NonZeroU8

Source§

impl JsData for NonZeroU16

Source§

impl JsData for NonZeroU32

Source§

impl JsData for NonZeroU64

Source§

impl JsData for NonZeroU128

Source§

impl JsData for NonZeroUsize

Source§

impl JsData for Path

Source§

impl JsData for PathBuf

Source§

impl JsData for String

Source§

impl JsData for TypeId

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 usize

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<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> JsData for (A, B, C, D, E, F, G, H, I, J)

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> JsData for (A, B, C, D, E, F, G, H)

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> JsData for (A, B, C, D, E, F)

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<A> JsData for (A,)

Source§

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

Source§

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

Source§

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

Source§

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

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 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<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> 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 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> 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> 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 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> 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> 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 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> 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> 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 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> JsData for unsafe fn(A, B, C, D, E, F, G, H) -> 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 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> JsData for unsafe fn(A, B, C, D, E, F, G) -> 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 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> JsData for unsafe fn(A, B, C, D, E, F) -> 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 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> JsData for unsafe fn(A, B, C, D, E) -> 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 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> JsData for unsafe fn(A, B, C, D) -> 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 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> JsData for unsafe fn(A, B, C) -> 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 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> JsData for unsafe fn(A, B) -> 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 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> JsData for unsafe fn(A) -> Ret

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<T> JsData for BTreeSet<T>

Source§

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

Source§

impl<T> JsData for Option<T>

Source§

impl<T> JsData for PhantomData<T>

Source§

impl<T> JsData for ThinVec<T>

Source§

impl<T> JsData for Vec<T>

Source§

impl<T> JsData for VecDeque<T>

Implementors§