Subscription

Struct Subscription 

Source
pub struct Subscription<T> { /* private fields */ }
Expand description

A Subscription is a feed of notifications from the server of a specific type T, identified by a local ID.

For flexibility, we expose three similar APIs:

Implementations§

Source§

impl<T> Subscription<T>

Source

pub const fn local_id(&self) -> &B256

Get the local ID of the subscription.

Source

pub fn into_raw(self) -> RawSubscription

Convert the subscription into its inner RawSubscription.

Source

pub const fn inner(&self) -> &RawSubscription

Get a reference to the inner subscription.

Source

pub const fn inner_mut(&mut self) -> &mut RawSubscription

Get a mutable reference to the inner subscription.

Source

pub fn is_empty(&self) -> bool

Returns true if the broadcast channel is empty (i.e. there are currently no notifications to receive).

Source

pub fn len(&self) -> usize

Returns the number of messages in the broadcast channel that this receiver has yet to receive.

NB: This count may include messages of unexpected types that will be discarded upon receipt.

Source

pub fn resubscribe_inner(&self) -> RawSubscription

Wrapper for resubscribe. Create a new RawSubscription, starting from the current tail element.

Source

pub fn resubscribe(&self) -> Self

Wrapper for resubscribe. Create a new Subscription, starting from the current tail element.

Source

pub fn same_channel<U>(&self, other: &Subscription<U>) -> bool

Wrapper for same_channel. Returns true if the two subscriptions share the same broadcast channel.

Source§

impl<T: DeserializeOwned> Subscription<T>

Source

pub fn blocking_recv_any(&mut self) -> Result<SubscriptionItem<T>, RecvError>

Wrapper for blocking_recv, may produce unexpected values. Block the current thread until a message is available.

Source

pub async fn recv_any(&mut self) -> Result<SubscriptionItem<T>, RecvError>

Wrapper for recv, may produce unexpected values. Await an item from the channel.

Source

pub fn try_recv_any(&mut self) -> Result<SubscriptionItem<T>, TryRecvError>

Wrapper for try_recv. Attempt to receive a message from the channel without awaiting.

Source

pub fn into_stream(self) -> SubscriptionStream<T>

Convert the subscription into a stream.

Errors are logged and ignored.

Source

pub fn into_result_stream(self) -> SubResultStream<T>

Convert the subscription into a stream that returns deserialization results.

Source

pub fn into_any_stream(self) -> SubAnyStream<T>

Convert the subscription into a stream that may yield unexpected types.

Source

pub fn blocking_recv(&mut self) -> Result<T, RecvError>

Wrapper for blocking_recv. Block the current thread until a message of the expected type is available.

Source

pub async fn recv(&mut self) -> Result<T, RecvError>

Wrapper for recv. Await an item of the expected type from the channel.

Source

pub fn try_recv(&mut self) -> Result<T, TryRecvError>

Wrapper for try_recv. Attempt to receive a message of the expected type from the channel without awaiting.

Source

pub fn blocking_recv_result(&mut self) -> Result<Result<T, Error>, RecvError>

Wrapper for blocking_recv. Block the current thread until a message is available, deserializing the message and returning the result.

Source

pub async fn recv_result(&mut self) -> Result<Result<T, Error>, RecvError>

Wrapper for recv. Await an item from the channel, deserializing the message and returning the result.

Source

pub fn try_recv_result(&mut self) -> Result<Result<T, Error>, TryRecvError>

Wrapper for try_recv. Attempt to receive a message from the channel without awaiting, deserializing the message and returning the result.

Trait Implementations§

Source§

impl<T: Debug> Debug for Subscription<T>

Source§

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

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

impl<T> From<RawSubscription> for Subscription<T>

Source§

fn from(inner: RawSubscription) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<T> Freeze for Subscription<T>

§

impl<T> RefUnwindSafe for Subscription<T>
where T: RefUnwindSafe,

§

impl<T> Send for Subscription<T>
where T: Send,

§

impl<T> Sync for Subscription<T>
where T: Sync,

§

impl<T> Unpin for Subscription<T>
where T: Unpin,

§

impl<T> UnwindSafe for Subscription<T>
where 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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 48 bytes