Sub

Struct Sub 

Source
pub struct Sub<'a, PSB: PubSubBehavior<T> + ?Sized, T: Clone> { /* private fields */ }
Expand description

A subscriber to a channel

Implementations§

Source§

impl<'a, PSB: PubSubBehavior<T> + ?Sized, T: Clone> Sub<'a, PSB, T>

Source

pub fn next_message<'s>(&'s mut self) -> SubscriberWaitFuture<'s, 'a, PSB, T>

Wait for a published message

Source

pub async fn next_message_pure(&mut self) -> T

Wait for a published message (ignoring lag results)

Source

pub fn try_next_message(&mut self) -> Option<WaitResult<T>>

Try to see if there’s a published message we haven’t received yet.

This function does not peek. The message is received if there is one.

Source

pub fn try_next_message_pure(&mut self) -> Option<T>

Try to see if there’s a published message we haven’t received yet (ignoring lag results).

This function does not peek. The message is received if there is one.

Source

pub fn available(&self) -> u64

The amount of messages this subscriber hasn’t received yet. This is like Self::len but specifically for this subscriber.

Source

pub fn capacity(&self) -> usize

Returns the maximum number of elements the channel can hold.

Source

pub fn free_capacity(&self) -> usize

Returns the free capacity of the channel.

This is equivalent to capacity() - len()

Source

pub fn clear(&self)

Clears all elements in the channel.

Source

pub fn len(&self) -> usize

Returns the number of elements currently in the channel. See Self::available for how many messages are available for this subscriber.

Source

pub fn is_empty(&self) -> bool

Returns whether the channel is empty.

Source

pub fn is_full(&self) -> bool

Returns whether the channel is full.

Trait Implementations§

Source§

impl<'a, PSB: Debug + PubSubBehavior<T> + ?Sized, T: Debug + Clone> Debug for Sub<'a, PSB, T>

Source§

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

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

impl<'a, PSB: PubSubBehavior<T> + ?Sized, T: Clone> Drop for Sub<'a, PSB, T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl<'a, PSB: PubSubBehavior<T> + ?Sized, T: Clone> Stream for Sub<'a, PSB, T>

Warning: The stream implementation ignores lag results and returns all messages. This might miss some messages without you knowing it.

Source§

type Item = T

Values yielded by the stream.
Source§

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

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

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

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

impl<'a, PSB: PubSubBehavior<T> + ?Sized, T: Clone> Unpin for Sub<'a, PSB, T>

Auto Trait Implementations§

§

impl<'a, PSB, T> Freeze for Sub<'a, PSB, T>
where PSB: ?Sized,

§

impl<'a, PSB, T> RefUnwindSafe for Sub<'a, PSB, T>
where PSB: RefUnwindSafe + ?Sized, T: RefUnwindSafe,

§

impl<'a, PSB, T> Send for Sub<'a, PSB, T>
where PSB: Sync + ?Sized, T: Send,

§

impl<'a, PSB, T> Sync for Sub<'a, PSB, T>
where PSB: Sync + ?Sized, T: Sync,

§

impl<'a, PSB, T> UnwindSafe for Sub<'a, PSB, T>
where PSB: RefUnwindSafe + ?Sized, T: UnwindSafe,

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, 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.
Source§

impl<S, T, E> TryStream for S
where S: Stream<Item = Result<T, E>> + ?Sized,

Source§

type Ok = T

The type of successful values yielded by this future
Source§

type Error = E

The type of failures yielded by this future
Source§

fn try_poll_next( self: Pin<&mut S>, cx: &mut Context<'_>, ) -> Poll<Option<Result<<S as TryStream>::Ok, <S as TryStream>::Error>>>

Poll this TryStream as if it were a Stream. Read more