pub struct TypedArray<T, S>where
T: TypedArrayElement,
S: JSObjectStorage,{
object: S,
computed: Cell<ArrayData<<T as TypedArrayElement>::Element>>,
}Expand description
A typed array wrapper.
Fields§
§object: S§computed: Cell<ArrayData<<T as TypedArrayElement>::Element>>Implementations§
Source§impl<T, S> TypedArray<T, S>where
T: TypedArrayElement,
S: JSObjectStorage,
impl<T, S> TypedArray<T, S>where
T: TypedArrayElement,
S: JSObjectStorage,
Sourcepub fn from(object: *mut JSObject) -> Result<TypedArray<T, S>, ()>
pub fn from(object: *mut JSObject) -> Result<TypedArray<T, S>, ()>
Create a typed array representation that wraps an existing JS reflector. This operation will fail if attempted on a JS object that does not match the expected typed array details.
Sourcepub unsafe fn underlying_object(&self) -> &S
pub unsafe fn underlying_object(&self) -> &S
§Unsafety
Returned wrapped pointer to the underlying JSObject is meant to be
read-only, modifying it can lead to Undefined Behaviour and violation
of TypedArray API guarantees.
Practically, this exists only to implement JSTraceable trait in Servo
for Box<Heap<*mut JSObject>> variant.
Sourcepub fn to_vec(&self) -> Option<Vec<<T as TypedArrayElement>::Element>>
pub fn to_vec(&self) -> Option<Vec<<T as TypedArrayElement>::Element>>
Retrieves an owned data that’s represented by the typed array. Returns None if the underlying buffer is detached.
Sourcepub unsafe fn as_slice(&self) -> Option<&[<T as TypedArrayElement>::Element]>
👎Deprecated: use as_slice_safe instead
pub unsafe fn as_slice(&self) -> Option<&[<T as TypedArrayElement>::Element]>
Sourcepub fn as_slice_safe<'a>(
&self,
_no_gc: &'a NoGC,
) -> Option<&'a [<T as TypedArrayElement>::Element]>
pub fn as_slice_safe<'a>( &self, _no_gc: &'a NoGC, ) -> Option<&'a [<T as TypedArrayElement>::Element]>
Returns None if the underlying array buffer is detached. Otherwise, returns Some with the slice data.
Sourcepub unsafe fn as_mut_slice(
&mut self,
) -> Option<&mut [<T as TypedArrayElement>::Element]>
👎Deprecated: use as_mut_slice_safe instead
pub unsafe fn as_mut_slice( &mut self, ) -> Option<&mut [<T as TypedArrayElement>::Element]>
pub fn as_mut_slice_safe<'a>( &mut self, _no_gc: &'a NoGC, ) -> Option<&'a mut [<T as TypedArrayElement>::Element]>
Return a boolean flag which denotes whether the underlying buffer is a SharedArrayBuffer.
Source§impl<T, S> TypedArray<T, S>
impl<T, S> TypedArray<T, S>
Sourcepub unsafe fn create(
cx: *mut JSContext,
with: CreateWith<'_, <T as TypedArrayElement>::Element>,
result: MutableHandle<'_, *mut JSObject>,
) -> Result<(), ()>
pub unsafe fn create( cx: *mut JSContext, with: CreateWith<'_, <T as TypedArrayElement>::Element>, result: MutableHandle<'_, *mut JSObject>, ) -> Result<(), ()>
Create a new JS typed array, optionally providing initial data that will be copied into the newly-allocated buffer. Returns the new JS reflector.
Sourcepub fn update(&mut self, data: &[<T as TypedArrayElement>::Element])
pub fn update(&mut self, data: &[<T as TypedArrayElement>::Element])
Update an existed JS typed array
Source§impl<S> TypedArray<ArrayBufferViewU8, S>where
S: JSObjectStorage,
impl<S> TypedArray<ArrayBufferViewU8, S>where
S: JSObjectStorage,
pub fn get_array_type(&self) -> Type
Trait Implementations§
Source§impl<T> CustomTrace for TypedArray<T, *mut JSObject>where
T: TypedArrayElement,
impl<T> CustomTrace for TypedArray<T, *mut JSObject>where
T: TypedArrayElement,
Source§impl<T, S> FromJSValConvertible for TypedArray<T, S>where
T: TypedArrayElement,
S: JSObjectStorage,
impl<T, S> FromJSValConvertible for TypedArray<T, S>where
T: TypedArrayElement,
S: JSObjectStorage,
Source§fn safe_from_jsval(
_cx: &mut JSContext,
value: Handle<'_, Value>,
_option: (),
) -> Result<ConversionResult<TypedArray<T, S>>, ()>
fn safe_from_jsval( _cx: &mut JSContext, value: Handle<'_, Value>, _option: (), ) -> Result<ConversionResult<TypedArray<T, S>>, ()>
val to type Self.
Optional configuration of type T can be passed as the option
argument.
If it returns Err(()), a JSAPI exception is pending.
If it returns Ok(Failure(reason)), there is no pending JSAPI exception.Source§impl<T, S> ToJSValConvertible for TypedArray<T, S>where
T: TypedArrayElement,
S: JSObjectStorage,
impl<T, S> ToJSValConvertible for TypedArray<T, S>where
T: TypedArrayElement,
S: JSObjectStorage,
Source§unsafe fn to_jsval(&self, cx: *mut JSContext, rval: MutableHandle<'_, Value>)
unsafe fn to_jsval(&self, cx: *mut JSContext, rval: MutableHandle<'_, Value>)
self to a JSVal. JSAPI failure causes a panic.Source§fn safe_to_jsval(&self, cx: &mut JSContext, rval: MutableHandle<'_, Value>)
fn safe_to_jsval(&self, cx: &mut JSContext, rval: MutableHandle<'_, Value>)
self to a JSVal. JSAPI failure causes a panic.Auto Trait Implementations§
impl<T, S> !Freeze for TypedArray<T, S>
impl<T, S> !RefUnwindSafe for TypedArray<T, S>
impl<T, S> !Send for TypedArray<T, S>
impl<T, S> !Sync for TypedArray<T, S>
impl<T, S> Unpin for TypedArray<T, S>where
S: Unpin,
impl<T, S> UnsafeUnpin for TypedArray<T, S>where
S: UnsafeUnpin,
impl<T, S> UnwindSafe for TypedArray<T, S>
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> Filterable for T
impl<T> Filterable for T
Source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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