neon::types

Struct JsArrayBuffer

Source
pub struct JsArrayBuffer(/* private fields */);
Expand description

The type of JavaScript ArrayBuffer objects.

§Example

use neon::types::buffer::TypedArray;

fn make_sequence(mut cx: FunctionContext) -> JsResult<JsArrayBuffer> {
    let len = cx.argument::<JsNumber>(0)?.value(&mut cx);
    let mut buffer = cx.array_buffer(len as usize)?;

    for (i, elem) in buffer.as_mut_slice(&mut cx).iter_mut().enumerate() {
        *elem = i as u8;
    }

    Ok(buffer)
}

Implementations§

Source§

impl JsArrayBuffer

Source

pub fn new<'a, C: Context<'a>>(cx: &mut C, len: usize) -> JsResult<'a, Self>

Constructs a new JsArrayBuffer object, safely zero-filled.

See also: Context::array_buffer

Source

pub fn from_slice<'cx, C>(cx: &mut C, slice: &[u8]) -> JsResult<'cx, Self>
where C: Context<'cx>,

Constructs a JsArrayBuffer from a slice by copying its contents.

This method is defined on JsArrayBuffer as a convenience and delegates to TypedArray::from_slice.

Source

pub fn external<'a, C, T>(cx: &mut C, data: T) -> Handle<'a, Self>
where C: Context<'a>, T: AsMut<[u8]> + Send + 'static,

Available on crate feature external-buffers only.

Construct a new JsArrayBuffer from bytes allocated by Rust.

§Compatibility Note

Some Node environments are built using V8’s sandboxed pointers functionality, which disallows the use of external buffers. In those environments, calling the underlying runtime function used by this method results in an immediate termination of the Node VM.

As a result, this API is disabled by default. If you are confident that your code will only be used in environments that disable sandboxed pointers, you can make use of this method by enabling the external-buffers feature flag.

Source

pub fn region<'cx, T: Binary>( buffer: &Handle<'cx, JsArrayBuffer>, offset: usize, len: usize, ) -> Region<'cx, T>

Returns a region of this buffer.

See also: Handle<JsArrayBuffer>::region() for a more ergonomic form of this method.

Trait Implementations§

Source§

impl Debug for JsArrayBuffer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Object for JsArrayBuffer

Source§

fn prop<'a, 'cx: 'a, K: PropertyKey>( &self, cx: &'a mut Cx<'cx>, key: K, ) -> PropOptions<'a, 'cx, Self, K>

Create a PropOptions for accessing a property. Read more
Source§

fn method<'a, 'cx: 'a, K: PropertyKey>( &self, cx: &'a mut Cx<'cx>, key: K, ) -> NeonResult<BindOptions<'a, 'cx>>

Gets a property from the object as a method and binds this to the object. Read more
Source§

fn get_opt<'a, V: Value, C: Context<'a>, K: PropertyKey>( &self, cx: &mut C, key: K, ) -> NeonResult<Option<Handle<'a, V>>>

👎Deprecating in a future version: use Object::prop() instead
Source§

fn get_value<'a, C: Context<'a>, K: PropertyKey>( &self, cx: &mut C, key: K, ) -> NeonResult<Handle<'a, JsValue>>

👎Deprecating in a future version: use Object::prop() instead
Source§

fn get<'a, V: Value, C: Context<'a>, K: PropertyKey>( &self, cx: &mut C, key: K, ) -> NeonResult<Handle<'a, V>>

👎Deprecating in a future version: use Object::prop() instead
Source§

fn get_own_property_names<'a, C: Context<'a>>( &self, cx: &mut C, ) -> JsResult<'a, JsArray>

Available on crate feature napi-6 only.
Source§

fn freeze<'a, C: Context<'a>>(&self, cx: &mut C) -> NeonResult<&Self>

Source§

fn seal<'a, C: Context<'a>>(&self, cx: &mut C) -> NeonResult<&Self>

Source§

fn set<'a, C: Context<'a>, K: PropertyKey, W: Value>( &self, cx: &mut C, key: K, val: Handle<'_, W>, ) -> NeonResult<bool>

👎Deprecating in a future version: use Object::prop() instead
Source§

fn root<'a, C: Context<'a>>(&self, cx: &mut C) -> Root<Self>

Source§

fn call_method_with<'a, C, K>( &self, cx: &mut C, method: K, ) -> NeonResult<CallOptions<'a>>
where C: Context<'a>, K: PropertyKey,

👎Deprecating in a future version: use Object::method() instead
Source§

impl TypedArray for JsArrayBuffer

Source§

type Item = u8

Source§

fn as_slice<'cx, 'a, C>(&self, cx: &'a C) -> &'a [Self::Item]
where C: Context<'cx>,

Statically checked immutable borrow of binary data. Read more
Source§

fn as_mut_slice<'cx, 'a, C>(&mut self, cx: &'a mut C) -> &'a mut [Self::Item]
where C: Context<'cx>,

Statically checked mutable borrow of binary data. Read more
Source§

fn try_borrow<'cx, 'a, C>( &self, lock: &'a Lock<'_, C>, ) -> Result<Ref<'a, Self::Item>, BorrowError>
where C: Context<'cx>,

Dynamically checked immutable borrow of binary data, returning an error if the the borrow would overlap with a mutable borrow. Read more
Source§

fn try_borrow_mut<'cx, 'a, C>( &mut self, lock: &'a Lock<'_, C>, ) -> Result<RefMut<'a, Self::Item>, BorrowError>
where C: Context<'cx>,

Dynamically checked mutable borrow of binary data, returning an error if the the borrow would overlap with an active borrow. Read more
Source§

fn size<'cx, C: Context<'cx>>(&self, cx: &mut C) -> usize

Returns the size, in bytes, of the allocated binary data.
Source§

fn from_slice<'cx, C>(cx: &mut C, slice: &[u8]) -> JsResult<'cx, Self>
where C: Context<'cx>,

Constructs an instance from a slice by copying its contents.
Source§

impl Value for JsArrayBuffer

Source§

fn to_string<'cx, C: Context<'cx>>(&self, cx: &mut C) -> JsResult<'cx, JsString>

Source§

fn as_value<'cx, C: Context<'cx>>(&self, _: &mut C) -> Handle<'cx, JsValue>

Source§

fn to_raw(&self) -> Value

Available on crate feature sys only.
Get a raw reference to the wrapped Node-API value.
Source§

unsafe fn from_raw<'cx, C: Context<'cx>>( cx: &C, value: Value, ) -> Handle<'cx, Self>

Available on crate feature sys only.
Creates a value from a raw Node-API value. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.