pub struct RowPushMsg {
pub collection: String,
pub document_id: String,
pub payload: Vec<u8>,
pub op: RowOp,
pub lsn: u64,
pub peer_id: u64,
pub sequence: u64,
}Expand description
Row post-image push (server → client, 0x15).
Origin sends this for writes that originated on the server — SQL DML, or DDL-managed system rows such as retention policies and alerts — where there is no client-authored CRDT operation to replicate. The peer applies it as a row upsert or delete against its local state.
Deliberately NOT DeltaPushMsg: that message is client → server and its
delta field is Loro update bytes. Carrying a MessagePack post-image in it
would leave the receiver unable to tell the two encodings apart, and the
operation (upsert vs delete) would have to be inferred from an empty
payload rather than stated.
Fields§
§collection: StringCollection the row belongs to.
document_id: StringRow / document ID.
payload: Vec<u8>MessagePack-encoded row post-image. Empty for RowOp::Delete.
op: RowOpWhether the row was written or removed.
lsn: u64Origin-assigned WAL LSN for the write, when known (0 otherwise).
peer_id: u64Originating peer / node ID.
sequence: u64Per-collection monotonic sequence, for ordering diagnostics.
Trait Implementations§
Source§impl Clone for RowPushMsg
impl Clone for RowPushMsg
Source§impl Debug for RowPushMsg
impl Debug for RowPushMsg
Source§impl<'de> Deserialize<'de> for RowPushMsg
impl<'de> Deserialize<'de> for RowPushMsg
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 RowPushMsg
impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for RowPushMsg
Source§impl Serialize for RowPushMsg
impl Serialize for RowPushMsg
Source§impl ToMessagePack for RowPushMsg
impl ToMessagePack for RowPushMsg
Source§fn write<W: Write>(&self, writer: &mut W) -> Result<(), Error>
fn write<W: Write>(&self, writer: &mut W) -> Result<(), Error>
Source§fn size_hint(&self) -> Option<TrustedSizeHint>
fn size_hint(&self) -> Option<TrustedSizeHint>
Self::write, or None when it cannot be determined cheaply. Read moreAuto Trait Implementations§
impl Freeze for RowPushMsg
impl RefUnwindSafe for RowPushMsg
impl Send for RowPushMsg
impl Sync for RowPushMsg
impl Unpin for RowPushMsg
impl UnsafeUnpin for RowPushMsg
impl UnwindSafe for RowPushMsg
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.