pub struct DeltaPushMsg {
pub collection: String,
pub document_id: String,
pub delta: Vec<u8>,
pub peer_id: u64,
pub mutation_id: u64,
pub checksum: u32,
pub device_valid_time_ms: Option<i64>,
pub producer_id: u64,
pub epoch: u64,
pub seq: u64,
}Expand description
Delta push message (client → server, 0x10).
Fields§
§collection: StringCollection the delta applies to.
document_id: StringDocument ID.
delta: Vec<u8>Loro CRDT delta bytes.
peer_id: u64Client’s peer ID (for CRDT identity).
mutation_id: u64Per-mutation unique ID for dedup.
checksum: u32CRC32C checksum of delta bytes for integrity verification.
Computed by sender, validated by receiver. 0 for legacy clients.
device_valid_time_ms: Option<i64>Device-assigned valid-time for the mutation (ms since Unix epoch).
Populated by offline-capable clients so Origin can preserve the
application’s notion of “when did this fact take effect” independently
of the Origin-assigned system_from_ms. None means the client did
not supply a valid-time — Origin will use system_from_ms as the
default valid-from.
producer_id: u64Stable identity of the originating producer (Lite peer ID or Origin node ID). 0 for legacy / pre-idempotency clients.
epoch: u64Monotonic epoch counter incremented on every producer restart. 0 for legacy / pre-idempotency clients.
seq: u64Per-stream monotonic sequence number within the epoch. 0 for legacy / pre-idempotency clients.
Trait Implementations§
Source§impl Clone for DeltaPushMsg
impl Clone for DeltaPushMsg
Source§fn clone(&self) -> DeltaPushMsg
fn clone(&self) -> DeltaPushMsg
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DeltaPushMsg
impl Debug for DeltaPushMsg
Source§impl<'de> Deserialize<'de> for DeltaPushMsg
impl<'de> Deserialize<'de> for DeltaPushMsg
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for DeltaPushMsg
impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for DeltaPushMsg
Source§impl Serialize for DeltaPushMsg
impl Serialize for DeltaPushMsg
Auto Trait Implementations§
impl Freeze for DeltaPushMsg
impl RefUnwindSafe for DeltaPushMsg
impl Send for DeltaPushMsg
impl Sync for DeltaPushMsg
impl Unpin for DeltaPushMsg
impl UnsafeUnpin for DeltaPushMsg
impl UnwindSafe for DeltaPushMsg
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
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<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> FromMessagePackOwned for Twhere
T: for<'a> FromMessagePack<'a>,
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.impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.