From 96d7744dd29a3c783b43a7a6697af7d5d5719a10 Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 3 Nov 2026 05:20:59 +0100 Subject: add writer trees --- src/transport/mod.rs | 4 ++++ src/transport/wire.rs | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'src/transport') diff --git a/src/transport/mod.rs b/src/transport/mod.rs index 9ae8ff2..899f4b8 100644 --- a/src/transport/mod.rs +++ b/src/transport/mod.rs @@ -670,6 +670,10 @@ pub(crate) struct SyncEnvelope { /// not one it is still filling (joining, rejoining). Only such a peer can tell a /// catching-up node that it has everything; an empty document says nothing else. pub(crate) ready: bool, + /// Whose change it passes on along the writer's tree (`swarm::tree`), by pair key: + /// the writer's, on its own push and on every member's after; None otherwise + /// (answers, pulls). + pub(crate) writer: Option, } /// What a sync envelope carries. diff --git a/src/transport/wire.rs b/src/transport/wire.rs index a6ca286..8e3baa6 100644 --- a/src/transport/wire.rs +++ b/src/transport/wire.rs @@ -14,7 +14,7 @@ use super::{EncodedMessage, MessageKind, ParsedMessage}; /// The wire format's version, the first byte of every payload. Bump it with every change /// to a message type or a codec (`golden_bytes` fails then). -pub(crate) const VERSION: u8 = 21; +pub(crate) const VERSION: u8 = 22; /// What the second byte of a payload says. fn tag(kind: MessageKind) -> u8 { @@ -410,6 +410,7 @@ pub(crate) fn samples() -> Vec { to: vec![ChangeHash([2; 32])], }), ready: true, + writer: Some(7), }), ParsedMessage::Status(status.clone()), ParsedMessage::StatusReply(status), -- cgit v1.3.1