Skip to main content

SubscriptionEvent

Enum SubscriptionEvent 

Source
#[non_exhaustive]
pub enum SubscriptionEvent { Report(AttributeReport), Event(EventReport), Established { subscription_id: u32, }, Resubscribing { cause: Error, }, Lagged { dropped: usize, }, }
Expand description

An event from a live Subscription.

This enum is #[non_exhaustive]: matching on it must include a wildcard arm, because future protocol work may add variants without a breaking change.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Report(AttributeReport)

A reported attribute value (a priming value or a steady-state change).

§

Event(EventReport)

A reported event (a priming/historical event or a steady-state emission). Delivered on the same bounded report channel as Self::Report; under backpressure it is dropped and surfaced via Self::Lagged like any report. Events have no list-merge semantics, so they are delivered as they arrive (they bypass the chunked-attribute reassembler).

§

Established

The subscription was (re-)established by the device; carries the device-assigned subscription id. Fired after each successful SubscribeResponse, including after an auto-resubscribe. Priming Self::Reports, if any, precede it (they arrive before the SubscribeResponse on the wire).

Delivered reliably even under report backpressure (see Subscription).

Fields

§subscription_id: u32

The device-assigned subscription id.

§

Resubscribing

The subscription went stale (liveness timeout or session loss) and is being transparently re-established; cause is why. Reports resume after the next Self::Established. Emitted by the auto-resubscribe engine.

Delivered reliably even under report backpressure (see Subscription).

Fields

§cause: Error

Why the subscription is being re-established.

§

Lagged

One or more Self::Reports were dropped because the consumer did not drain Subscription::next fast enough to keep up with the device’s reporting cadence, and the bounded report buffer filled. dropped is the number of reports discarded since the previous Lagged (a coalesced count, not one event per drop). Subsequent reports continue to arrive; only the buffer-overflow ones were lost. A re-read or the next Self::Established re-prime can be used to recover authoritative state.

Fields

§dropped: usize

Number of reports dropped since the last Lagged event.

Trait Implementations§

Source§

impl Debug for SubscriptionEvent

Source§

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

Formats the value using the given formatter. 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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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> Same for T

Source§

type Output = T

Should always be Self
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