Struct fluvio_ws_stream_wasm::WsStream[][src]

pub struct WsStream { /* fields omitted */ }
Expand description

A futures 0.3 Sink/Stream of WsMessage. Created with WsMeta::connect.

Closing the connection

When this is dropped, the connection closes, but you should favor calling one of the close methods on WsMeta, which allow you to set a proper close code and reason.

Since this implements [Sink], it has to have a close method. This method will call the web api WebSocket.close without parameters. Eg. a default value of 1005 will be assumed for the close code. The situation is the same when dropping without calling close.

Warning: This object holds the callbacks needed to receive events from the browser. If you drop it before the close event was emitted, you will no longer receive events. Thus, observers will never receive a Close event. Drop will issue a Closing event and this will be the very last event observers receive. The the stream will end if WsMeta is also dropped.

See the integration tests if you need an example.

Implementations

impl WsStream[src]

pub fn ready_state(&self) -> WsState[src]

Verify the WsState of the connection.

pub fn wrapped(&self) -> &WebSocket[src]

Access the wrapped web_sys::WebSocket directly.

ws_stream_wasm tries to expose all useful functionality through an idiomatic rust API, so hopefully you won’t need this, however if I missed something, you can.

Caveats

If you call set_onopen, set_onerror, set_onmessage or set_onclose on this, you will overwrite the event listeners from ws_stream_wasm, and things will break.

pub fn into_io(self) -> IoStream<WsStreamIo, Vec<u8>>[src]

Wrap this object in IoStream. IoStream implements AsyncRead/AsyncWrite/AsyncBufRead. Beware: that this will transparenty include text messages as bytes.

Trait Implementations

impl Clone for WsStream[src]

fn clone(&self) -> WsStream[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for WsStream[src]

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

Formats the value using the given formatter. Read more

impl Drop for WsStream[src]

fn drop(&mut self)[src]

Executes the destructor for this type. Read more

impl Sink<WsMessage> for WsStream[src]

type Error = WsErr

The type of value produced by the sink when an error occurs.

fn poll_ready(
    self: Pin<&mut Self>,
    cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>>
[src]

Attempts to prepare the Sink to receive a value. Read more

fn start_send(self: Pin<&mut Self>, item: WsMessage) -> Result<(), Self::Error>[src]

Begin the process of sending a value to the sink. Each call to this function must be preceded by a successful call to poll_ready which returned Poll::Ready(Ok(())). Read more

fn poll_flush(
    self: Pin<&mut Self>,
    _: &mut Context<'_>
) -> Poll<Result<(), Self::Error>>
[src]

Flush any remaining output from this sink. Read more

fn poll_close(
    self: Pin<&mut Self>,
    cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>>
[src]

Flush any remaining output and close this sink, if necessary. Read more

impl Stream for WsStream[src]

type Item = WsMessage

Values yielded by the stream.

fn poll_next(
    self: Pin<&mut Self>,
    cx: &mut Context<'_>
) -> Poll<Option<Self::Item>>
[src]

Attempt to pull out the next value of this stream, registering the current task for wakeup if the value is not yet available, and returning None if the stream is exhausted. Read more

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the stream. Read more

Auto Trait Implementations

impl !RefUnwindSafe for WsStream

impl !Send for WsStream

impl !Sync for WsStream

impl Unpin for WsStream

impl !UnwindSafe for WsStream

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, Item> SinkExt<Item> for T where
    T: Sink<Item> + ?Sized

fn with<U, Fut, F, E>(self, f: F) -> With<Self, Item, U, Fut, F> where
    E: From<Self::Error>,
    Fut: Future<Output = Result<Item, E>>,
    F: FnMut(U) -> Fut, 

Composes a function in front of the sink. Read more

fn with_flat_map<U, St, F>(self, f: F) -> WithFlatMap<Self, Item, U, St, F> where
    St: Stream<Item = Result<Item, Self::Error>>,
    F: FnMut(U) -> St, 

Composes a function in front of the sink. Read more

fn sink_map_err<E, F>(self, f: F) -> SinkMapErr<Self, F> where
    F: FnOnce(Self::Error) -> E, 

Transforms the error returned by the sink.

fn sink_err_into<E>(self) -> SinkErrInto<Self, Item, E> where
    Self::Error: Into<E>, 

Map this sink’s error to a different error type using the Into trait. Read more

fn buffer(self, capacity: usize) -> Buffer<Self, Item>

Adds a fixed-size buffer to the current sink. Read more

fn close(&mut self) -> Close<'_, Self, Item> where
    Self: Unpin

Close the sink.

fn fanout<Si>(self, other: Si) -> Fanout<Self, Si> where
    Item: Clone,
    Si: Sink<Item, Error = Self::Error>, 

Fanout items to multiple sinks. Read more

fn flush(&mut self) -> Flush<'_, Self, Item> where
    Self: Unpin

Flush the sink, processing all pending items. Read more

fn send(&mut self, item: Item) -> Send<'_, Self, Item> where
    Self: Unpin

A future that completes after the given item has been fully processed into the sink, including flushing. Read more

fn feed(&mut self, item: Item) -> Feed<'_, Self, Item> where
    Self: Unpin

A future that completes after the given item has been received by the sink. Read more

fn send_all<St>(&'a mut self, stream: &'a mut St) -> SendAll<'a, Self, St> where
    Self: Unpin,
    St: TryStream<Ok = Item, Error = Self::Error> + Stream + Unpin + ?Sized

A future that completes after the given stream has been fully processed into the sink, including flushing. Read more

fn left_sink<Si2>(self) -> Either<Self, Si2> where
    Si2: Sink<Item, Error = Self::Error>, 

Wrap this sink in an Either sink, making it the left-hand variant of that Either. Read more

fn right_sink<Si1>(self) -> Either<Si1, Self> where
    Si1: Sink<Item, Error = Self::Error>, 

Wrap this stream in an Either stream, making it the right-hand variant of that Either. Read more

fn poll_ready_unpin(
    &mut self,
    cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>> where
    Self: Unpin

A convenience method for calling [Sink::poll_ready] on Unpin sink types. Read more

fn start_send_unpin(&mut self, item: Item) -> Result<(), Self::Error> where
    Self: Unpin

A convenience method for calling [Sink::start_send] on Unpin sink types. Read more

fn poll_flush_unpin(
    &mut self,
    cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>> where
    Self: Unpin

A convenience method for calling [Sink::poll_flush] on Unpin sink types. Read more

fn poll_close_unpin(
    &mut self,
    cx: &mut Context<'_>
) -> Poll<Result<(), Self::Error>> where
    Self: Unpin

A convenience method for calling [Sink::poll_close] on Unpin sink types. Read more

impl<T> StreamExt for T where
    T: Stream + ?Sized

fn next(&mut self) -> Next<'_, Self> where
    Self: Unpin

Creates a future that resolves to the next item in the stream. Read more

fn into_future(self) -> StreamFuture<Self> where
    Self: Unpin

Converts this stream into a future of (next_item, tail_of_stream). If the stream terminates, then the next item is None. Read more

fn map<T, F>(self, f: F) -> Map<Self, F> where
    F: FnMut(Self::Item) -> T, 

Maps this stream’s items to a different type, returning a new stream of the resulting type. Read more

fn enumerate(self) -> Enumerate<Self>

Creates a stream which gives the current iteration count as well as the next value. Read more

fn filter<Fut, F>(self, f: F) -> Filter<Self, Fut, F> where
    Fut: Future<Output = bool>,
    F: FnMut(&Self::Item) -> Fut, 

Filters the values produced by this stream according to the provided asynchronous predicate. Read more

fn filter_map<Fut, T, F>(self, f: F) -> FilterMap<Self, Fut, F> where
    Fut: Future<Output = Option<T>>,
    F: FnMut(Self::Item) -> Fut, 

Filters the values produced by this stream while simultaneously mapping them to a different type according to the provided asynchronous closure. Read more

fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F> where
    Fut: Future,
    F: FnMut(Self::Item) -> Fut, 

Computes from this stream’s items new items of a different type using an asynchronous closure. Read more

fn collect<C>(self) -> Collect<Self, C> where
    C: Default + Extend<Self::Item>, 

Transforms a stream into a collection, returning a future representing the result of that computation. Read more

fn unzip<A, B, FromA, FromB>(self) -> Unzip<Self, FromA, FromB> where
    Self: Stream<Item = (A, B)>,
    FromA: Default + Extend<A>,
    FromB: Default + Extend<B>, 

Converts a stream of pairs into a future, which resolves to pair of containers. Read more

fn concat(self) -> Concat<Self> where
    Self::Item: Extend<<Self::Item as IntoIterator>::Item>,
    Self::Item: IntoIterator,
    Self::Item: Default

Concatenate all items of a stream into a single extendable destination, returning a future representing the end result. Read more

fn cycle(self) -> Cycle<Self> where
    Self: Clone

Repeats a stream endlessly. Read more

fn fold<T, Fut, F>(self, init: T, f: F) -> Fold<Self, Fut, T, F> where
    Fut: Future<Output = T>,
    F: FnMut(T, Self::Item) -> Fut, 

Execute an accumulating asynchronous computation over a stream, collecting all the values into one final result. Read more

fn flatten(self) -> Flatten<Self> where
    Self::Item: Stream, 

Flattens a stream of streams into just one continuous stream. Read more

fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> where
    U: Stream,
    F: FnMut(Self::Item) -> U, 

Maps a stream like [StreamExt::map] but flattens nested Streams. Read more

fn scan<S, B, Fut, F>(self, initial_state: S, f: F) -> Scan<Self, S, Fut, F> where
    Fut: Future<Output = Option<B>>,
    F: FnMut(&mut S, Self::Item) -> Fut, 

Combinator similar to [StreamExt::fold] that holds internal state and produces a new stream. Read more

fn skip_while<Fut, F>(self, f: F) -> SkipWhile<Self, Fut, F> where
    Fut: Future<Output = bool>,
    F: FnMut(&Self::Item) -> Fut, 

Skip elements on this stream while the provided asynchronous predicate resolves to true. Read more

fn take_while<Fut, F>(self, f: F) -> TakeWhile<Self, Fut, F> where
    Fut: Future<Output = bool>,
    F: FnMut(&Self::Item) -> Fut, 

Take elements from this stream while the provided asynchronous predicate resolves to true. Read more

fn take_until<Fut>(self, fut: Fut) -> TakeUntil<Self, Fut> where
    Fut: Future

Take elements from this stream until the provided future resolves. Read more

fn for_each<Fut, F>(self, f: F) -> ForEach<Self, Fut, F> where
    Fut: Future<Output = ()>,
    F: FnMut(Self::Item) -> Fut, 

Runs this stream to completion, executing the provided asynchronous closure for each element on the stream. Read more

fn for_each_concurrent<Fut, F>(
    self,
    limit: impl Into<Option<usize>>,
    f: F
) -> ForEachConcurrent<Self, Fut, F> where
    Fut: Future<Output = ()>,
    F: FnMut(Self::Item) -> Fut, 

Runs this stream to completion, executing the provided asynchronous closure for each element on the stream concurrently as elements become available. Read more

fn take(self, n: usize) -> Take<Self>

Creates a new stream of at most n items of the underlying stream. Read more

fn skip(self, n: usize) -> Skip<Self>

Creates a new stream which skips n items of the underlying stream. Read more

fn fuse(self) -> Fuse<Self>

Fuse a stream such that poll_next will never again be called once it has finished. This method can be used to turn any Stream into a FusedStream. Read more

fn by_ref(&mut self) -> &mut Self

Borrows a stream, rather than consuming it. Read more

fn catch_unwind(self) -> CatchUnwind<Self> where
    Self: UnwindSafe

Catches unwinding panics while polling the stream. Read more

fn boxed<'a>(
    self
) -> Pin<Box<dyn Stream<Item = Self::Item> + 'a + Send, Global>> where
    Self: Send + 'a, 

Wrap the stream in a Box, pinning it. Read more

fn boxed_local<'a>(self) -> Pin<Box<dyn Stream<Item = Self::Item> + 'a, Global>> where
    Self: 'a, 

Wrap the stream in a Box, pinning it. Read more

fn buffered(self, n: usize) -> Buffered<Self> where
    Self::Item: Future

An adaptor for creating a buffered list of pending futures. Read more

fn buffer_unordered(self, n: usize) -> BufferUnordered<Self> where
    Self::Item: Future

An adaptor for creating a buffered list of pending futures (unordered). Read more

fn zip<St>(self, other: St) -> Zip<Self, St> where
    St: Stream, 

An adapter for zipping two streams together. Read more

fn chain<St>(self, other: St) -> Chain<Self, St> where
    St: Stream<Item = Self::Item>, 

Adapter for chaining two streams. Read more

fn peekable(self) -> Peekable<Self>

Creates a new stream which exposes a peek method. Read more

fn chunks(self, capacity: usize) -> Chunks<Self>

An adaptor for chunking up items of the stream inside a vector. Read more

fn ready_chunks(self, capacity: usize) -> ReadyChunks<Self>

An adaptor for chunking up ready items of the stream inside a vector. Read more

fn forward<S>(self, sink: S) -> Forward<Self, S> where
    Self: TryStream,
    S: Sink<Self::Ok, Error = Self::Error>, 

A future that completes after the given stream has been fully processed into the sink and the sink has been flushed and closed. Read more

fn split<Item>(self) -> (SplitSink<Self, Item>, SplitStream<Self>) where
    Self: Sink<Item>, 

Splits this Stream + Sink object into separate Sink and Stream objects. Read more

fn inspect<F>(self, f: F) -> Inspect<Self, F> where
    F: FnMut(&Self::Item), 

Do something with each item of this stream, afterwards passing it on. Read more

fn left_stream<B>(self) -> Either<Self, B> where
    B: Stream<Item = Self::Item>, 

Wrap this stream in an Either stream, making it the left-hand variant of that Either. Read more

fn right_stream<B>(self) -> Either<B, Self> where
    B: Stream<Item = Self::Item>, 

Wrap this stream in an Either stream, making it the right-hand variant of that Either. Read more

fn poll_next_unpin(&mut self, cx: &mut Context<'_>) -> Poll<Option<Self::Item>> where
    Self: Unpin

A convenience method for calling [Stream::poll_next] on Unpin stream types. Read more

fn select_next_some(&mut self) -> SelectNextSome<'_, Self> where
    Self: Unpin + FusedStream, 

Returns a Future that resolves when the next item in this stream is ready. Read more

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.