pub struct SeatUpdate {
pub seq: Option<u64>,
pub update: Arc<SessionUpdate>,
}Expand description
The update the core emits, re-exported: it is the workspace-to-view protocol already, so a view subscribes to it rather than to a second vocabulary this crate would have to keep in step. 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
Source§fn clone(&self) -> SeatUpdate
fn clone(&self) -> SeatUpdate
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto 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
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> ⓘ
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> ⓘ
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