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/state/mod.rs | 7 ++++--- src/state/peer.rs | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'src/state') diff --git a/src/state/mod.rs b/src/state/mod.rs index 92f7810..57dab7d 100644 --- a/src/state/mod.rs +++ b/src/state/mod.rs @@ -149,9 +149,10 @@ pub(crate) struct AppState { pub(crate) throughput: Arc>, /// Pulls of changes from neighbours (`swarm::relay`). pub(crate) pulling: Arc>, - /// An announcement round is scheduled, for changes from these peers - /// (`swarm::relay`). - pub(crate) announce_pending: Arc>>>, + /// An announcement round is scheduled (`swarm::relay`). + pub(crate) announce_pending: Arc>>, + /// Distances in writers' trees (`swarm::tree`). + pub(crate) trees: Arc>, /// Whom we reach, as told our neighbours (`swarm::reach`). pub(crate) reach: Arc>, /// Our neighbours, once known (`swarm::topology`). diff --git a/src/state/peer.rs b/src/state/peer.rs index 1e09079..06269e9 100644 --- a/src/state/peer.rs +++ b/src/state/peer.rs @@ -153,6 +153,9 @@ pub(crate) struct PeerState { pub(crate) eager_from: bool, /// Whom it said it reaches (`swarm::reach`), by pair key, and when. pub(crate) reaches: Option<(Instant, Vec)>, + /// Whose change the next sync message to it passes on along the writer's tree + /// (`swarm::tree`); taken when it is generated. + pub(crate) tree_writer: Option, /// It said farewell (`say_farewell`): what else that run of it still sends while it /// stops doesn't make it active again; a message from another run does (`returned`). @@ -247,6 +250,7 @@ impl PeerState { eager_to: false, eager_from: false, reaches: None, + tree_writer: None, left: false, hello_attempts: 0, unreachable_since: None, -- cgit v1.3.1