pub struct Array<'js>(/* private fields */);
Expand description
Rust representation of a JavaScript object optimized as an array.
JavaScript array’s are objects and can be used as such. However arrays in QuickJS are optimized when they do not have any holes. This value represents such an optimized array.
Implementations§
source§impl<'js> Array<'js>
impl<'js> Array<'js>
sourcepub fn get<V>(&self, idx: usize) -> Result<V, Error>where
V: FromJs<'js>,
pub fn get<V>(&self, idx: usize) -> Result<V, Error>where
V: FromJs<'js>,
Get the value at an index in the JavaScript array.
sourcepub fn set<V>(&self, idx: usize, val: V) -> Result<(), Error>where
V: IntoJs<'js>,
pub fn set<V>(&self, idx: usize, val: V) -> Result<(), Error>where
V: IntoJs<'js>,
Set the value at an index in the JavaScript array.
sourcepub fn iter<T>(&self) -> ArrayIter<'js, T> ⓘwhere
T: FromJs<'js>,
pub fn iter<T>(&self) -> ArrayIter<'js, T> ⓘwhere
T: FromJs<'js>,
Get an iterator over elements of an array
pub fn into_object(self) -> Object<'js>
pub fn as_object(&self) -> &Object<'js>
source§impl<'js> Array<'js>
impl<'js> Array<'js>
sourcepub fn into_value(self) -> Value<'js>
pub fn into_value(self) -> Value<'js>
Convert into value
sourcepub fn into_inner(self) -> Object<'js>
pub fn into_inner(self) -> Object<'js>
Returns the underlying super type.
Methods from Deref<Target = Object<'js>>§
sourcepub fn prop<K, V, P>(&self, key: K, prop: V) -> Result<(), Error>where
K: IntoAtom<'js>,
V: AsProperty<'js, P>,
Available on crate feature properties
only.
pub fn prop<K, V, P>(&self, key: K, prop: V) -> Result<(), Error>where
K: IntoAtom<'js>,
V: AsProperty<'js, P>,
properties
only.Define a property of an object
// Define readonly property without value
obj.prop("no_val", ()).unwrap();
// Define readonly property with value
obj.prop("ro_str", "Some const text").unwrap();
// Define readonly property with value and make it to be writable
obj.prop("ro_str2", Property::from("Some const text").writable()).unwrap();
// Define readonly property using getter and make it to be enumerable
obj.prop("ro_str_get", Accessor::from(|| "Some readable text").enumerable()).unwrap();
// Define readonly property using getter and setter
obj.prop("ro_str_get_set",
Accessor::from(|| "Some text")
.set(|new_val: String| { /* do something */ })
).unwrap();
sourcepub fn contains_key<K>(&self, k: K) -> Result<bool, Error>where
K: IntoAtom<'js>,
pub fn contains_key<K>(&self, k: K) -> Result<bool, Error>where
K: IntoAtom<'js>,
check whether the object contains a certain key.
sourcepub fn set<K, V>(&self, key: K, value: V) -> Result<(), Error>
pub fn set<K, V>(&self, key: K, value: V) -> Result<(), Error>
Set a member of an object to a certain value
sourcepub fn remove<K>(&self, key: K) -> Result<(), Error>where
K: IntoAtom<'js>,
pub fn remove<K>(&self, key: K) -> Result<(), Error>where
K: IntoAtom<'js>,
Remove a member of an object
sourcepub fn keys<K>(&self) -> ObjectKeysIter<'js, K> ⓘwhere
K: FromAtom<'js>,
pub fn keys<K>(&self) -> ObjectKeysIter<'js, K> ⓘwhere
K: FromAtom<'js>,
Get own string enumerable property names of an object
sourcepub fn own_keys<K>(&self, filter: Filter) -> ObjectKeysIter<'js, K> ⓘwhere
K: FromAtom<'js>,
pub fn own_keys<K>(&self, filter: Filter) -> ObjectKeysIter<'js, K> ⓘwhere
K: FromAtom<'js>,
Get own property names of an object
sourcepub fn props<K, V>(&self) -> ObjectIter<'js, K, V> ⓘ
pub fn props<K, V>(&self) -> ObjectIter<'js, K, V> ⓘ
Get own string enumerable properties of an object
sourcepub fn own_props<K, V>(&self, filter: Filter) -> ObjectIter<'js, K, V> ⓘ
pub fn own_props<K, V>(&self, filter: Filter) -> ObjectIter<'js, K, V> ⓘ
Get own properties of an object
sourcepub fn values<K>(&self) -> ObjectValuesIter<'js, K> ⓘwhere
K: FromAtom<'js>,
pub fn values<K>(&self) -> ObjectValuesIter<'js, K> ⓘwhere
K: FromAtom<'js>,
Get own string enumerable property values of an object
sourcepub fn own_values<K>(&self, filter: Filter) -> ObjectValuesIter<'js, K> ⓘwhere
K: FromAtom<'js>,
pub fn own_values<K>(&self, filter: Filter) -> ObjectValuesIter<'js, K> ⓘwhere
K: FromAtom<'js>,
Get own property values of an object
sourcepub fn get_prototype(&self) -> Option<Object<'js>>
pub fn get_prototype(&self) -> Option<Object<'js>>
Get an object prototype
Objects can have no prototype, in this case this function will return null.
sourcepub fn set_prototype(&self, proto: Option<&Object<'js>>) -> Result<(), Error>
pub fn set_prototype(&self, proto: Option<&Object<'js>>) -> Result<(), Error>
Set an object prototype
If called with None the function will set the prototype of the object to null.
This function will error if setting the prototype causes a cycle in the prototype chain.
sourcepub fn is_instance_of(&self, class: impl AsRef<Value<'js>>) -> bool
pub fn is_instance_of(&self, class: impl AsRef<Value<'js>>) -> bool
Check instance of object
sourcepub fn is_array_buffer(&self) -> bool
pub fn is_array_buffer(&self) -> bool
Returns whether the object is an instance of ArrayBuffer
.
sourcepub unsafe fn ref_array_buffer(&self) -> &ArrayBuffer<'_>
pub unsafe fn ref_array_buffer(&self) -> &ArrayBuffer<'_>
sourcepub fn as_array_buffer(&self) -> Option<&ArrayBuffer<'_>>
pub fn as_array_buffer(&self) -> Option<&ArrayBuffer<'_>>
Turn the object into an array buffer if the object is an instance of ArrayBuffer
.
pub fn is_typed_array<T>(&self) -> boolwhere
T: TypedArrayItem,
sourcepub unsafe fn ref_typed_array<'a, T>(&'a self) -> &'a TypedArray<'a, T>where
T: TypedArrayItem,
pub unsafe fn ref_typed_array<'a, T>(&'a self) -> &'a TypedArray<'a, T>where
T: TypedArrayItem,
pub fn as_typed_array<T>(&self) -> Option<&TypedArray<'_, T>>where
T: TypedArrayItem,
sourcepub fn instance_of<C>(&self) -> boolwhere
C: JsClass<'js>,
pub fn instance_of<C>(&self) -> boolwhere
C: JsClass<'js>,
Returns if the object is of a certain Rust class.
Methods from Deref<Target = Value<'js>>§
sourcepub fn is_undefined(&self) -> bool
pub fn is_undefined(&self) -> bool
Returns if the value is the JavaScript undefined value.
sourcepub fn is_function(&self) -> bool
pub fn is_function(&self) -> bool
Check if the value is a function
sourcepub fn is_constructor(&self) -> bool
pub fn is_constructor(&self) -> bool
Check if the value is a constructor function
sourcepub fn is_promise(&self) -> bool
pub fn is_promise(&self) -> bool
Check if the value is a promise.
sourcepub fn is_exception(&self) -> bool
pub fn is_exception(&self) -> bool
Check if the value is an exception
sourcepub fn get<T>(&self) -> Result<T, Error>where
T: FromJs<'js>,
pub fn get<T>(&self) -> Result<T, Error>where
T: FromJs<'js>,
Convert from value to specified type
sourcepub unsafe fn ref_string(&self) -> &String<'js>
pub unsafe fn ref_string(&self) -> &String<'js>
sourcepub unsafe fn ref_symbol(&self) -> &Symbol<'js>
pub unsafe fn ref_symbol(&self) -> &Symbol<'js>
sourcepub unsafe fn ref_object(&self) -> &Object<'js>
pub unsafe fn ref_object(&self) -> &Object<'js>
sourcepub unsafe fn ref_function(&self) -> &Function<'js>
pub unsafe fn ref_function(&self) -> &Function<'js>
sourcepub fn as_function(&self) -> Option<&Function<'js>>
pub fn as_function(&self) -> Option<&Function<'js>>
Try reinterpret as Function
sourcepub unsafe fn ref_constructor(&self) -> &Constructor<'js>
pub unsafe fn ref_constructor(&self) -> &Constructor<'js>
Interpret as Constructor
§Safety
You should be sure that the value already is of required type before to do it.
sourcepub fn as_constructor(&self) -> Option<&Constructor<'js>>
pub fn as_constructor(&self) -> Option<&Constructor<'js>>
Try reinterpret as Constructor
sourcepub unsafe fn ref_promise(&self) -> &Promise<'js>
pub unsafe fn ref_promise(&self) -> &Promise<'js>
sourcepub fn as_promise(&self) -> Option<&Promise<'js>>
pub fn as_promise(&self) -> Option<&Promise<'js>>
Try reinterpret as Promise
sourcepub unsafe fn ref_exception(&self) -> &Exception<'js>
pub unsafe fn ref_exception(&self) -> &Exception<'js>
sourcepub fn as_exception(&self) -> Option<&Exception<'js>>
pub fn as_exception(&self) -> Option<&Exception<'js>>
Try reinterpret as Exception
sourcepub unsafe fn ref_big_int(&self) -> &BigInt<'js>
pub unsafe fn ref_big_int(&self) -> &BigInt<'js>
sourcepub fn as_big_int(&self) -> Option<&BigInt<'js>>
pub fn as_big_int(&self) -> Option<&BigInt<'js>>
Try reinterpret as BigInt
Trait Implementations§
source§impl<'js, A> FromIteratorJs<'js, A> for Array<'js>where
A: IntoJs<'js>,
impl<'js, A> FromIteratorJs<'js, A> for Array<'js>where
A: IntoJs<'js>,
source§impl<'js> IntoIterator for Array<'js>
impl<'js> IntoIterator for Array<'js>
source§impl<'js> PartialEq for Array<'js>
impl<'js> PartialEq for Array<'js>
impl<'js> Eq for Array<'js>
impl<'js> StructuralPartialEq for Array<'js>
Auto Trait Implementations§
impl<'js> Freeze for Array<'js>
impl<'js> RefUnwindSafe for Array<'js>
impl<'js> !Send for Array<'js>
impl<'js> !Sync for Array<'js>
impl<'js> Unpin for Array<'js>
impl<'js> !UnwindSafe for Array<'js>
Blanket Implementations§
source§impl<'js, T> AsProperty<'js, T> for Twhere
T: IntoJs<'js>,
impl<'js, T> AsProperty<'js, T> for Twhere
T: IntoJs<'js>,
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<'js, T> FromParam<'js> for Twhere
T: FromJs<'js>,
impl<'js, T> FromParam<'js> for Twhere
T: FromJs<'js>,
source§fn param_requirement() -> ParamRequirement
fn param_requirement() -> ParamRequirement
source§fn from_param<'a>(params: &mut ParamsAccessor<'a, 'js>) -> Result<T, Error>
fn from_param<'a>(params: &mut ParamsAccessor<'a, 'js>) -> Result<T, Error>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more