Skip to main content

PubSubSubscriber

Struct PubSubSubscriber 

Source
pub struct PubSubSubscriber { /* private fields */ }
Expand description

Subscriber-side helper that holds a SubscriberPosition and pulls items from a PubSubRing in order.

Implementations§

Source§

impl PubSubSubscriber

Source

pub fn new(ring: Arc<PubSubRing>, position: SubscriberPosition) -> Self

Wrap a ring + position into a subscriber.

Source

pub fn position(&self) -> u64

Current absolute position this subscriber has consumed up to.

Source

pub fn ring(&self) -> &Arc<PubSubRing>

Ring this subscriber is attached to.

Source

pub fn skip(&self, n: u64) -> u64

Advance the subscriber’s position by n without reading. Used by callers that want to skip items deliberately (sampled subscriptions, late-join skip-ahead).

Source

pub fn try_next(&self, out: &mut [u8]) -> Result<(), PubSubReadError>

Try to read the next item. On success, advances the subscriber’s position by 1. On Pending, leaves the position alone. On Lost, advances the position to the ring’s current head (skipping past the gap).

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