pub enum SyncupMsg {
EntryRequest {
vlsn: Vlsn,
},
Entry {
vlsn: Vlsn,
lsn: u64,
fingerprint: u64,
is_sync: bool,
},
EntryNotFound,
AlternateMatchpoint {
vlsn: Vlsn,
lsn: u64,
fingerprint: u64,
is_sync: bool,
},
StartStream {
start_vlsn: Vlsn,
},
RestoreRequest {
failed_vlsn: Vlsn,
},
RestoreResponse,
}Expand description
One syncup-protocol message. Wire form: a 1-byte opcode followed by a
fixed body (little-endian). Mirrors the BaseProtocol message classes used
during syncup.
Variants§
EntryRequest
Replica → feeder: “do you have VLSN X (at LSN Y on my side)?”
(JE BaseProtocol.EntryRequest). The LSN/fingerprint are the replica’s
own values so the feeder need not be asked to compute equality — the
replica compares the returned SyncupMsg::Entry.
Entry
Feeder → replica: “here is my record at that VLSN” (JE Entry).
EntryNotFound
Feeder → replica: “I do not hold that VLSN” (below my range)
(JE EntryNotFound).
AlternateMatchpoint
Feeder → replica: “that VLSN is above my range; here is my highest sync
point as a counter-offer” (JE AlternateMatchpoint).
StartStream
Replica → feeder: “matchpoint agreed; start streaming from this VLSN”
(JE StartStream).
RestoreRequest
Replica → feeder: “no matchpoint; I need a network restore”
(JE RestoreRequest).
RestoreResponse
Feeder → replica: acknowledgement of a restore request
(JE RestoreResponse).
Implementations§
Trait Implementations§
impl Eq for SyncupMsg
impl StructuralPartialEq for SyncupMsg
Auto Trait Implementations§
impl Freeze for SyncupMsg
impl RefUnwindSafe for SyncupMsg
impl Send for SyncupMsg
impl Sync for SyncupMsg
impl Unpin for SyncupMsg
impl UnsafeUnpin for SyncupMsg
impl UnwindSafe for SyncupMsg
Blanket Implementations§
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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