pub struct LiveSubscription { /* private fields */ }Expand description
Receiving end of a live subscription.
Values are delivered as shared LiveEntry handles so one decoded entry can be fanned out to
multiple subscribers without duplicating field storage.
Each subscription has a bounded queue controlled by JournalConfig::live_channel_capacity.
Dropping a subscription unregisters it from the engine. When all subscriptions are dropped,
LiveJournal::run exits.
Implementations§
Source§impl LiveSubscription
impl LiveSubscription
Sourcepub fn recv(&self) -> Result<Result<LiveEntry>, RecvError>
pub fn recv(&self) -> Result<Result<LiveEntry>, RecvError>
Receive the next entry, blocking until the subscription closes or a value arrives.
The outer Result reports channel closure. The inner crate Result reports journal
decoding or I/O errors produced by the live engine.
Sourcepub fn recv_timeout(
&self,
timeout: Duration,
) -> Result<Result<LiveEntry>, RecvTimeoutError>
pub fn recv_timeout( &self, timeout: Duration, ) -> Result<Result<LiveEntry>, RecvTimeoutError>
Receive the next entry, waiting at most timeout.
The outer Result distinguishes timeout or channel closure from a delivered value. The
delivered value is still a crate Result because reading the journal can fail.
Sourcepub fn try_recv(&self) -> Result<Result<LiveEntry>, TryRecvError>
pub fn try_recv(&self) -> Result<Result<LiveEntry>, TryRecvError>
Try to receive the next queued entry without blocking.
This is useful when integrating LiveJournal::poll_once into an existing event loop.