From c7226385f3765b2a72b7b4d95129fb20fec58d5c Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 5 Nov 2026 04:36:58 +0100 Subject: push changes experiment --- src/transport/mod.rs | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/transport/mod.rs') diff --git a/src/transport/mod.rs b/src/transport/mod.rs index 474e386..7e5d41b 100644 --- a/src/transport/mod.rs +++ b/src/transport/mod.rs @@ -743,6 +743,15 @@ pub(crate) enum SyncBody { Message(#[serde(with = "crate::transport::wire::codec::sync_message")] SyncPayload), /// An Automerge sync message, deflated (`compress`): a large one, which shrank. Deflated(#[serde(with = "crate::transport::wire::codec::sync_message")] SyncPayload), + /// Changes passed on along a writer's tree as they are, with the sender's heads, + /// instead of an Automerge sync message (`AppState::push_changes`): where the sender + /// takes the message as delivered, it has everything the receiver has, and needs + /// none of the rest of one (`SyncSession::push`). + Changes { + #[serde(with = "crate::transport::wire::codec::change_hashes")] + heads: Vec, + changes: Vec, + }, /// Instead of a message too large to send in one piece: fetch these changes as a /// blob (`BlobId::Delta`), then sync on. Delta(DeltaSpec), -- cgit v1.3.1