Skip to main content

JsObjectValue

Trait JsObjectValue 

Source
pub trait JsObjectValue<'env>: JsValue<'env> {
Show 38 methods // Provided methods fn set_property<'k, 'v, K, V>(&mut self, key: K, value: V) -> Result<()> where K: JsValue<'k>, V: JsValue<'v> { ... } fn get_property<'k, K, T>(&self, key: K) -> Result<T> where K: JsValue<'k>, T: FromNapiValue + ValidateNapiValue { ... } fn get_property_unchecked<'k, K, T>(&self, key: K) -> Result<T> where K: JsValue<'k>, T: FromNapiValue { ... } fn set_named_property<T>(&mut self, name: &str, value: T) -> Result<()> where T: ToNapiValue { ... } fn set_c_named_property<T>(&mut self, name: &CStr, value: T) -> Result<()> where T: ToNapiValue { ... } fn create_named_method<K>( &mut self, name: K, function: Callback, ) -> Result<()> where K: AsRef<str> { ... } fn create_c_named_method( &mut self, name: &CStr, function: Callback, ) -> Result<()> { ... } fn get_named_property<T>(&self, name: &str) -> Result<T> where T: FromNapiValue + ValidateNapiValue { ... } fn get_c_named_property<T>(&self, name: &CStr) -> Result<T> where T: FromNapiValue + ValidateNapiValue { ... } fn get_named_property_unchecked<T>(&self, name: &str) -> Result<T> where T: FromNapiValue { ... } fn get_c_named_property_unchecked<T>(&self, name: &CStr) -> Result<T> where T: FromNapiValue { ... } fn has_named_property<N: AsRef<str>>(&self, name: N) -> Result<bool> { ... } fn has_c_named_property(&self, name: &CStr) -> Result<bool> { ... } fn delete_property<'s, S>(&mut self, name: S) -> Result<bool> where S: JsValue<'s> { ... } fn delete_named_property<K: AsRef<str>>(&mut self, name: K) -> Result<bool> { ... } fn delete_c_named_property(&mut self, name: &CStr) -> Result<bool> { ... } fn has_own_property(&self, key: &str) -> Result<bool> { ... } fn has_c_own_property(&self, key: &CStr) -> Result<bool> { ... } fn has_own_property_js<'k, K>(&self, key: K) -> Result<bool> where K: JsValue<'k> { ... } fn has_property(&self, name: &str) -> Result<bool> { ... } fn has_property_js<'k, K>(&self, name: K) -> Result<bool> where K: JsValue<'k> { ... } fn get_property_names(&self) -> Result<Object<'env>> { ... } fn get_all_property_names( &self, mode: KeyCollectionMode, filter: KeyFilter, conversion: KeyConversion, ) -> Result<Object<'env>> { ... } fn get_prototype(&self) -> Result<Unknown<'env>> { ... } fn get_prototype_unchecked<T>(&self) -> Result<T> where T: FromNapiValue { ... } fn set_element<'t, T>(&mut self, index: u32, value: T) -> Result<()> where T: JsValue<'t> { ... } fn has_element(&self, index: u32) -> Result<bool> { ... } fn delete_element(&mut self, index: u32) -> Result<bool> { ... } fn get_element<T>(&self, index: u32) -> Result<T> where T: FromNapiValue { ... } fn define_properties(&mut self, properties: &[Property]) -> Result<()> { ... } fn get_array_length(&self) -> Result<u32> { ... } fn get_array_length_unchecked(&self) -> Result<u32> { ... } fn wrap<T: 'static>( &mut self, native_object: T, size_hint: Option<usize>, ) -> Result<()> { ... } fn unwrap<T: 'static>(&self) -> Result<&mut T> { ... } fn remove_wrapped<T: 'static>(&mut self) -> Result<()> { ... } fn add_finalizer<T, Hint, F>( &mut self, native: T, finalize_hint: Hint, finalize_cb: F, ) -> Result<()> where T: 'static, Hint: 'static, F: FnOnce(FinalizeContext<T, Hint>) + 'static { ... } fn freeze(&mut self) -> Result<()> { ... } fn seal(&mut self) -> Result<()> { ... }
}

Provided Methods§

Source

fn set_property<'k, 'v, K, V>(&mut self, key: K, value: V) -> Result<()>
where K: JsValue<'k>, V: JsValue<'v>,

Set the property value to the Object

Source

fn get_property<'k, K, T>(&self, key: K) -> Result<T>

Get the property value from the Object

Return the InvalidArg error if the property is not T

Source

fn get_property_unchecked<'k, K, T>(&self, key: K) -> Result<T>
where K: JsValue<'k>, T: FromNapiValue,

Get the property value from the Object without validation

Source

fn set_named_property<T>(&mut self, name: &str, value: T) -> Result<()>
where T: ToNapiValue,

Set the property value to the Object

Source

fn set_c_named_property<T>(&mut self, name: &CStr, value: T) -> Result<()>
where T: ToNapiValue,

Set the property value to the Object, the property name is a CStr This is useful when the property name comes from a C library

Source

fn create_named_method<K>(&mut self, name: K, function: Callback) -> Result<()>
where K: AsRef<str>,

Create a named method on the Object

Source

fn create_c_named_method( &mut self, name: &CStr, function: Callback, ) -> Result<()>

Create a named method on the Object, the name is a CStr This is useful when the method name comes from a C library

Source

fn get_named_property<T>(&self, name: &str) -> Result<T>

Get the property value from the Object

Return the InvalidArg error if the property is not T

Source

fn get_c_named_property<T>(&self, name: &CStr) -> Result<T>

Get the property value from the Object

Return the InvalidArg error if the property is not T

This is useful when the property name comes from a C library

Source

fn get_named_property_unchecked<T>(&self, name: &str) -> Result<T>
where T: FromNapiValue,

Get the property value from the Object without validation

Source

fn get_c_named_property_unchecked<T>(&self, name: &CStr) -> Result<T>
where T: FromNapiValue,

Get the property value from the Object without validation

This is useful when the property name comes from a C library

Source

fn has_named_property<N: AsRef<str>>(&self, name: N) -> Result<bool>

Check if the Object has the named property

Source

fn has_c_named_property(&self, name: &CStr) -> Result<bool>

Check if the Object has the named property

This is useful when the property name comes from a C library

Source

fn delete_property<'s, S>(&mut self, name: S) -> Result<bool>
where S: JsValue<'s>,

Delete the property from the Object, the property name can be a JsValue

Source

fn delete_named_property<K: AsRef<str>>(&mut self, name: K) -> Result<bool>

Delete the property from the Object

Source

fn delete_c_named_property(&mut self, name: &CStr) -> Result<bool>

Delete the property from the Object

This is useful when the property name comes from a C library

Source

fn has_own_property(&self, key: &str) -> Result<bool>

Check if the Object has the own property

Source

fn has_c_own_property(&self, key: &CStr) -> Result<bool>

Check if the Object has the own property

This is useful when the property name comes from a C library

Source

fn has_own_property_js<'k, K>(&self, key: K) -> Result<bool>
where K: JsValue<'k>,

The same as has_own_property, but accepts a JsValue as the property name.

Source

fn has_property(&self, name: &str) -> Result<bool>

This API checks if the Object passed in has the named property.

Source

fn has_property_js<'k, K>(&self, name: K) -> Result<bool>
where K: JsValue<'k>,

This API is the same as has_property, but accepts a JsValue as the property name. So you can pass the JsNumber or JsSymbol as the property name.

Source

fn get_property_names(&self) -> Result<Object<'env>>

This API returns the names of the enumerable properties of object as an array of strings. The properties of object whose key is a symbol will not be included.

Source

fn get_all_property_names( &self, mode: KeyCollectionMode, filter: KeyFilter, conversion: KeyConversion, ) -> Result<Object<'env>>

https://nodejs.org/api/n-api.html#n_api_napi_get_all_property_names This API returns an array containing the names of the available properties of this object.

Source

fn get_prototype(&self) -> Result<Unknown<'env>>

This returns the equivalent of Object.getPrototypeOf (which is not the same as the function’s prototype property).

Source

fn get_prototype_unchecked<T>(&self) -> Result<T>
where T: FromNapiValue,

Get the prototype of the Object

Source

fn set_element<'t, T>(&mut self, index: u32, value: T) -> Result<()>
where T: JsValue<'t>,

Set the element at the given index

Source

fn has_element(&self, index: u32) -> Result<bool>

Check if the Array has the element at the given index

Source

fn delete_element(&mut self, index: u32) -> Result<bool>

Delete the element at the given index

Source

fn get_element<T>(&self, index: u32) -> Result<T>
where T: FromNapiValue,

Get the element at the given index

If the Object is not an array, ArrayExpected error returned

Source

fn define_properties(&mut self, properties: &[Property]) -> Result<()>

This method allows the efficient definition of multiple properties on a given object.

Source

fn get_array_length(&self) -> Result<u32>

Perform is_array check before get the length

if Object is not array, ArrayExpected error returned

Source

fn get_array_length_unchecked(&self) -> Result<u32>

use this API if you can ensure this Object is Array

Source

fn wrap<T: 'static>( &mut self, native_object: T, size_hint: Option<usize>, ) -> Result<()>

Wrap the native value T to this Object the T will be dropped when this Object is finalized

Source

fn unwrap<T: 'static>(&self) -> Result<&mut T>

Get the wrapped native value from the Object

Return the InvalidArg error if the Object is not wrapped the T

Source

fn remove_wrapped<T: 'static>(&mut self) -> Result<()>

Remove the wrapped native value from the Object

Return the InvalidArg error if the Object is not wrapped the T

Source

fn add_finalizer<T, Hint, F>( &mut self, native: T, finalize_hint: Hint, finalize_cb: F, ) -> Result<()>
where T: 'static, Hint: 'static, F: FnOnce(FinalizeContext<T, Hint>) + 'static,

Adds a finalize_cb callback which will be called when the JavaScript object in js_object has been garbage-collected.

This API can be called multiple times on a single JavaScript object.

Source

fn freeze(&mut self) -> Result<()>

This method freezes a given object. This prevents new properties from being added to it, existing properties from being removed, prevents changing the enumerability, configurability, or writability of existing properties, and prevents the values of existing properties from being changed. It also prevents the object’s prototype from being changed. This is described in Section 19.1.2.6 of the ECMA-262 specification.

Source

fn seal(&mut self) -> Result<()>

This method seals a given object. This prevents new properties from being added to it, as well as marking all existing properties as non-configurable. This is described in Section 19.1.2.20 of the ECMA-262 specification.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'env> JsObjectValue<'env> for JSON<'env>

Source§

impl<'env> JsObjectValue<'env> for JsDate<'env>

Source§

impl<'env> JsObjectValue<'env> for JsGlobal<'env>

Source§

impl<'env> JsObjectValue<'env> for JsTimeout<'env>

Source§

impl<'env> JsObjectValue<'env> for Array<'env>

Source§

impl<'env> JsObjectValue<'env> for ArrayBuffer<'env>

Source§

impl<'env> JsObjectValue<'env> for BigInt64ArraySlice<'env>

Source§

impl<'env> JsObjectValue<'env> for BigUint64ArraySlice<'env>

Source§

impl<'env> JsObjectValue<'env> for BufferSlice<'env>

Source§

impl<'env> JsObjectValue<'env> for Float32ArraySlice<'env>

Source§

impl<'env> JsObjectValue<'env> for Float64ArraySlice<'env>

Source§

impl<'env> JsObjectValue<'env> for Int8ArraySlice<'env>

Source§

impl<'env> JsObjectValue<'env> for Int16ArraySlice<'env>

Source§

impl<'env> JsObjectValue<'env> for Int32ArraySlice<'env>

Source§

impl<'env> JsObjectValue<'env> for Object<'env>

Source§

impl<'env> JsObjectValue<'env> for TypedArray<'env>

Source§

impl<'env> JsObjectValue<'env> for Uint8ArraySlice<'env>

Source§

impl<'env> JsObjectValue<'env> for Uint8ClampedSlice<'env>

Source§

impl<'env> JsObjectValue<'env> for Uint16ArraySlice<'env>

Source§

impl<'env> JsObjectValue<'env> for Uint32ArraySlice<'env>

Source§

impl<'env> JsObjectValue<'env> for WriteableStream<'env>

Source§

impl<'env, Args: JsValuesTupleIntoVec, Return> JsObjectValue<'env> for Function<'env, Args, Return>

Source§

impl<'env, T> JsObjectValue<'env> for PromiseRaw<'env, T>

Source§

impl<'env, T> JsObjectValue<'env> for ReadableStream<'env, T>

Source§

impl<'env, T: 'env> JsObjectValue<'env> for ClassInstance<'env, T>