pub struct JsBuffer(/* private fields */);Expand description
The type of Node
Buffer
objects.
§Example
use neon::types::buffer::TypedArray;
fn make_sequence(mut cx: FunctionContext) -> JsResult<JsBuffer> {
let len = cx.argument::<JsNumber>(0)?.value(&mut cx);
let mut buffer = cx.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 JsBuffer
impl JsBuffer
Sourcepub fn new<'a, C: Context<'a>>(cx: &mut C, len: usize) -> JsResult<'a, Self>
pub fn new<'a, C: Context<'a>>(cx: &mut C, len: usize) -> JsResult<'a, Self>
Constructs a new Buffer object, safely zero-filled.
See also: Context::buffer
Sourcepub fn from_slice<'cx, C>(cx: &mut C, slice: &[u8]) -> JsResult<'cx, Self>where
C: Context<'cx>,
pub fn from_slice<'cx, C>(cx: &mut C, slice: &[u8]) -> JsResult<'cx, Self>where
C: Context<'cx>,
Constructs a JsBuffer from a slice by copying its contents.
This method is defined on JsBuffer as a convenience and delegates to
TypedArray::from_slice.
Sourcepub unsafe fn uninitialized<'a, C: Context<'a>>(
cx: &mut C,
len: usize,
) -> JsResult<'a, Self>
pub unsafe fn uninitialized<'a, C: Context<'a>>( cx: &mut C, len: usize, ) -> JsResult<'a, Self>
Constructs a new Buffer object with uninitialized memory
Sourcepub fn external<'a, C, T>(cx: &mut C, data: T) -> Handle<'a, Self>
Available on crate feature external-buffers only.
pub fn external<'a, C, T>(cx: &mut C, data: T) -> Handle<'a, Self>
external-buffers only.Construct a new Buffer 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.
Trait Implementations§
Source§impl Object for JsBuffer
impl Object for JsBuffer
Source§fn prop<'a, 'cx: 'a, K: PropertyKey>(
&self,
cx: &'a mut Cx<'cx>,
key: K,
) -> PropOptions<'a, 'cx, Self, K>
fn prop<'a, 'cx: 'a, K: PropertyKey>( &self, cx: &'a mut Cx<'cx>, key: K, ) -> PropOptions<'a, 'cx, Self, K>
PropOptions for accessing a property. Read moreSource§fn method<'a, 'cx: 'a, K: PropertyKey>(
&self,
cx: &'a mut Cx<'cx>,
key: K,
) -> NeonResult<BindOptions<'a, 'cx>>
fn method<'a, 'cx: 'a, K: PropertyKey>( &self, cx: &'a mut Cx<'cx>, key: K, ) -> NeonResult<BindOptions<'a, 'cx>>
this to the object. Read moreSource§fn get_opt<'a, V: Value, C: Context<'a>, K: PropertyKey>(
&self,
cx: &mut C,
key: K,
) -> NeonResult<Option<Handle<'a, V>>>
fn get_opt<'a, V: Value, C: Context<'a>, K: PropertyKey>( &self, cx: &mut C, key: K, ) -> NeonResult<Option<Handle<'a, V>>>
Object::prop() insteadSource§fn get_value<'a, C: Context<'a>, K: PropertyKey>(
&self,
cx: &mut C,
key: K,
) -> NeonResult<Handle<'a, JsValue>>
fn get_value<'a, C: Context<'a>, K: PropertyKey>( &self, cx: &mut C, key: K, ) -> NeonResult<Handle<'a, JsValue>>
Object::prop() insteadSource§fn get<'a, V: Value, C: Context<'a>, K: PropertyKey>(
&self,
cx: &mut C,
key: K,
) -> NeonResult<Handle<'a, V>>
fn get<'a, V: Value, C: Context<'a>, K: PropertyKey>( &self, cx: &mut C, key: K, ) -> NeonResult<Handle<'a, V>>
Object::prop() insteadSource§fn get_own_property_names<'a, C: Context<'a>>(
&self,
cx: &mut C,
) -> JsResult<'a, JsArray>
fn get_own_property_names<'a, C: Context<'a>>( &self, cx: &mut C, ) -> JsResult<'a, JsArray>
napi-6 only.fn freeze<'a, C: Context<'a>>(&self, cx: &mut C) -> NeonResult<&Self>
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>
fn set<'a, C: Context<'a>, K: PropertyKey, W: Value>( &self, cx: &mut C, key: K, val: Handle<'_, W>, ) -> NeonResult<bool>
Object::prop() insteadfn 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,
fn call_method_with<'a, C, K>(
&self,
cx: &mut C,
method: K,
) -> NeonResult<CallOptions<'a>>where
C: Context<'a>,
K: PropertyKey,
Object::method() insteadSource§impl TypedArray for JsBuffer
impl TypedArray for JsBuffer
type Item = u8
Source§fn as_slice<'cx, 'a, C>(&self, cx: &'a C) -> &'a [Self::Item]where
C: Context<'cx>,
fn as_slice<'cx, 'a, C>(&self, cx: &'a C) -> &'a [Self::Item]where
C: Context<'cx>,
Source§fn as_mut_slice<'cx, 'a, C>(&mut self, cx: &'a mut C) -> &'a mut [Self::Item]where
C: Context<'cx>,
fn as_mut_slice<'cx, 'a, C>(&mut self, cx: &'a mut C) -> &'a mut [Self::Item]where
C: Context<'cx>,
Source§fn try_borrow<'cx, 'a, C>(
&self,
lock: &'a Lock<'_, C>,
) -> Result<Ref<'a, Self::Item>, BorrowError>where
C: Context<'cx>,
fn try_borrow<'cx, 'a, C>(
&self,
lock: &'a Lock<'_, C>,
) -> Result<Ref<'a, Self::Item>, BorrowError>where
C: Context<'cx>,
Source§fn try_borrow_mut<'cx, 'a, C>(
&mut self,
lock: &'a Lock<'_, C>,
) -> Result<RefMut<'a, Self::Item>, BorrowError>where
C: Context<'cx>,
fn try_borrow_mut<'cx, 'a, C>(
&mut self,
lock: &'a Lock<'_, C>,
) -> Result<RefMut<'a, Self::Item>, BorrowError>where
C: Context<'cx>,
Source§impl Value for JsBuffer
impl Value for JsBuffer
Auto Trait Implementations§
impl Freeze for JsBuffer
impl RefUnwindSafe for JsBuffer
impl !Send for JsBuffer
impl !Sync for JsBuffer
impl Unpin for JsBuffer
impl UnwindSafe for JsBuffer
Blanket Implementations§
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<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