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