pub struct WritableStream { /* private fields */ }
Expand description

A WritableStream.

WritableStreams can be created from a raw JavaScript stream with from_raw, or from a Rust Sink with from_sink.

They can be converted into a raw JavaScript stream with into_raw, or into a Rust Sink with into_sink.

Implementations§

source§

impl WritableStream

source

pub fn from_raw(raw: WritableStream) -> Self

Creates a new WritableStream from a JavaScript stream.

source

pub fn from_sink<Si>(sink: Si) -> Selfwhere Si: Sink<JsValue, Error = JsValue> + 'static,

Creates a new WritableStream from a Sink.

Items and errors must be represented as raw JsValues. Use with and/or sink_map_err to convert a sink’s items to a JsValue before passing it to this function.

source

pub fn as_raw(&self) -> &WritableStream

Acquires a reference to the underlying JavaScript stream.

source

pub fn into_raw(self) -> WritableStream

Consumes this WritableStream, returning the underlying JavaScript stream.

source

pub fn is_locked(&self) -> bool

Returns true if the stream is locked to a writer.

source

pub async fn abort(&mut self) -> Result<(), JsValue>

Aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be immediately moved to an errored state, with any queued-up writes discarded.

If the stream is currently locked to a writer, then this returns an error.

source

pub async fn abort_with_reason( &mut self, reason: &JsValue ) -> Result<(), JsValue>

Aborts the stream with the given reason, signaling that the producer can no longer successfully write to the stream and it is to be immediately moved to an errored state, with any queued-up writes discarded.

If the stream is currently locked to a writer, then this returns an error.

source

pub fn get_writer(&mut self) -> WritableStreamDefaultWriter<'_>

Creates a writer and locks the stream to the new writer.

While the stream is locked, no other writer can be acquired until this one is released.

Panics if the stream is already locked to a writer. For a non-panicking variant, use try_get_writer.

source

pub fn try_get_writer( &mut self ) -> Result<WritableStreamDefaultWriter<'_>, Error>

Try to create a writer and lock the stream to the new writer.

While the stream is locked, no other writer can be acquired until this one is released.

If the stream is already locked to a writer, then this returns an error.

source

pub fn into_sink(self) -> IntoSink<'static>

Converts this WritableStream into a Sink.

Items and errors are represented by their raw JsValue. Use with and/or sink_map_err on the returned stream to convert them to a more appropriate type.

Panics if the stream is already locked to a writer. For a non-panicking variant, use try_into_sink.

source

pub fn try_into_sink(self) -> Result<IntoSink<'static>, (Error, Self)>

Try to convert this WritableStream into a Sink.

Items and errors are represented by their raw JsValue. Use with and/or sink_map_err on the returned stream to convert them to a more appropriate type.

If the stream is already locked to a writer, then this returns an error along with the original WritableStream.

source

pub fn into_async_write(self) -> IntoAsyncWrite<'static>

Converts this WritableStream into an AsyncWrite.

The writable stream must accept Uint8Array chunks.

Panics if the stream is already locked to a writer. For a non-panicking variant, use try_into_async_write.

source

pub fn try_into_async_write( self ) -> Result<IntoAsyncWrite<'static>, (Error, Self)>

Try to convert this WritableStream into an AsyncWrite.

The writable stream must accept Uint8Array chunks.

If the stream is already locked to a writer, then this returns an error along with the original WritableStream.

Trait Implementations§

source§

impl Debug for WritableStream

source§

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

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

impl<Si> From<Si> for WritableStreamwhere Si: Sink<JsValue, Error = JsValue> + 'static,

source§

fn from(sink: Si) -> Self

Equivalent to from_sink.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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, U> TryFrom<U> for Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.