Skip to main content

UnboundedChannelSubscription

Struct UnboundedChannelSubscription 

Source
pub struct UnboundedChannelSubscription<M> { /* private fields */ }
Expand description

A subscription that receives messages from an unbounded channel.

This is the unbounded counterpart of ChannelSubscription. Use this when the sender should never block, at the cost of unbounded memory growth if messages are produced faster than consumed.

§Example

use envision::app::UnboundedChannelSubscription;

let (tx, rx) = tokio::sync::mpsc::unbounded_channel::<String>();
let subscription = UnboundedChannelSubscription::new(rx);

Implementations§

Source§

impl<M> UnboundedChannelSubscription<M>

Source

pub fn new(receiver: UnboundedReceiver<M>) -> Self

Creates a subscription from an unbounded channel receiver.

Trait Implementations§

Source§

impl<M: Send + 'static> Subscription<M> for UnboundedChannelSubscription<M>

Source§

fn into_stream( self: Box<Self>, cancel: CancellationToken, ) -> Pin<Box<dyn Stream<Item = M> + Send>>

Converts this subscription into a stream of messages. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where 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 T
where 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> StateExt for T

Source§

fn updated(self, cmd: Command<impl Clone>) -> UpdateResult<Self, impl Clone>

Updates self and returns a command.
Source§

fn unchanged(self) -> UpdateResult<Self, ()>

Returns self with no command.
Source§

impl<M, S> SubscriptionExt<M> for S
where S: Subscription<M>,

Source§

fn map<N, F>(self, f: F) -> MappedSubscription<M, N, F, Self>
where F: Fn(M) -> N + Send + 'static,

Maps the messages of this subscription. Read more
Source§

fn filter<P>(self, predicate: P) -> FilterSubscription<M, Self, P>
where P: Fn(&M) -> bool + Send + 'static,

Filters messages from this subscription. Read more
Source§

fn take(self, count: usize) -> TakeSubscription<M, Self>

Takes only the first N messages from this subscription. Read more
Source§

fn debounce(self, duration: Duration) -> DebounceSubscription<M, Self>

Debounces messages from this subscription. Read more
Source§

fn throttle(self, duration: Duration) -> ThrottleSubscription<M, Self>

Throttles messages from this subscription. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

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

Source§

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.