Struct script::dom::bindings::import::module::typedarray::TypedArray
source · pub struct TypedArray<T, S>where
T: TypedArrayElement,
S: JSObjectStorage,{
object: S,
computed: Cell<Option<(*mut <T as TypedArrayElement>::Element, usize)>>,
}
Expand description
A typed array wrapper.
Fields§
§object: S
§computed: Cell<Option<(*mut <T as TypedArrayElement>::Element, usize)>>
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) -> Vec<<T as TypedArrayElement>::Element>
pub fn to_vec(&self) -> Vec<<T as TypedArrayElement>::Element>
Retrieves an owned data that’s represented by the typed array.
sourcepub unsafe fn as_slice(&self) -> &[<T as TypedArrayElement>::Element]
pub unsafe fn as_slice(&self) -> &[<T as TypedArrayElement>::Element]
§Unsafety
The returned slice can be invalidated if the underlying typed array is neutered.
sourcepub unsafe fn as_mut_slice(
&mut self,
) -> &mut [<T as TypedArrayElement>::Element]
pub unsafe fn as_mut_slice( &mut self, ) -> &mut [<T as TypedArrayElement>::Element]
§Unsafety
The returned slice can be invalidated if the underlying typed array is neutered.
The underlying JSObject
can be aliased, which can lead to
Undefined Behavior due to mutable aliasing.
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§unsafe fn from_jsval(
_cx: *mut JSContext,
value: Handle<'_, Value>,
_option: (),
) -> Result<ConversionResult<TypedArray<T, S>>, ()>
unsafe fn 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,
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> 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