pub enum Step<T> {
Event(T),
CaughtUp,
}Expand description
One item of a phase-aware subscription cursor: a decoded event, or the caught-up boundary marker emitted once when replay finishes and the cursor switches to live tailing.
Everything yielded before CaughtUp is replay (catch-up
over the backlog); everything after is live. T is the item payload —
Decoded<E> per-stream, (AllPosition, StreamKey, Decoded<E>) for $all.
Exhaustive (no #[non_exhaustive], per project rule): the two variants are
frozen at 1.0. A lag signal (FellBehind) is intentionally omitted — the
live loop does not distinguish a lagging live consumer from a caught-up one,
and a consumer can observe lag from positions.
Variants§
Event(T)
A delivered event (replay or live — the phase is told by the preceding
CaughtUp).
CaughtUp
The backlog is drained; subsequent items are live. Emitted exactly once.
Implementations§
Trait Implementations§
impl<T: Copy> Copy for Step<T>
impl<T: Eq> Eq for Step<T>
impl<T: PartialEq> StructuralPartialEq for Step<T>
Auto Trait Implementations§
impl<T> Freeze for Step<T>where
T: Freeze,
impl<T> RefUnwindSafe for Step<T>where
T: RefUnwindSafe,
impl<T> Send for Step<T>where
T: Send,
impl<T> Sync for Step<T>where
T: Sync,
impl<T> Unpin for Step<T>where
T: Unpin,
impl<T> UnsafeUnpin for Step<T>where
T: UnsafeUnpin,
impl<T> UnwindSafe for Step<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.