pub struct SeatUpdate {
pub seq: Option<u64>,
pub update: Arc<SessionUpdate>,
}Expand description
One frame on the stream: the update, and the number the seat’s own counter minted for it.
The number is what makes a miss detectable. Every frame the workspace
emits for a seat is numbered on that seat’s counter - whichever site
emitted it - so a client that reads 5 and then 7 knows exactly one frame
went missing and can ask for it. seq is None for a frame belonging to
no seat, which rides the stream without joining any sequence.
Fields§
§seq: Option<u64>§update: Arc<SessionUpdate>Shared rather than owned, so one delivery is one pointer. A frame goes to every subscriber of the fleet, and each of them filters it afterwards - so a deep clone per subscriber paid for a payload most of them drop. The ring holds the same pointer.
Trait Implementations§
Source§impl Clone for SeatUpdate
impl Clone for SeatUpdate
Auto Trait Implementations§
impl Freeze for SeatUpdate
impl RefUnwindSafe for SeatUpdate
impl Send for SeatUpdate
impl Sync for SeatUpdate
impl Unpin for SeatUpdate
impl UnsafeUnpin for SeatUpdate
impl UnwindSafe for SeatUpdate
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more