aboutsummaryrefslogtreecommitdiffstats
path: root/src/state/peer.rs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-10-31 05:45:57 +0100
committertv <tv@krebsco.de>2026-10-31 05:45:57 +0100
commit197cee7f4da41a8f5181e314a90a26ae93e23a63 (patch)
tree105791a86d30f27e9af63165ec7f3c4228b26e75 /src/state/peer.rs
parentca0bd76db94e5d561f5c30b7b211e865d9e9e494 (diff)
centralize call to topology_change
Diffstat (limited to 'src/state/peer.rs')
-rw-r--r--src/state/peer.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/state/peer.rs b/src/state/peer.rs
index 95a9dc3..99f912b 100644
--- a/src/state/peer.rs
+++ b/src/state/peer.rs
@@ -288,6 +288,19 @@ impl PeerState {
self.unreachable_since.is_some()
}
+ /// What choosing neighbours reads of this peer (`swarm::topology::refresh`): whether
+ /// it is unreachable, whether it was ever heard from, whether it is a member, and
+ /// whether it syncs with us. A change to any may change the neighbours
+ /// (`swarm::topology::change_peer`).
+ pub(crate) fn neighbour_inputs(&self) -> impl PartialEq + use<> {
+ (
+ self.is_unreachable(),
+ self.last_seen.is_some(),
+ matches!(self.standing, Standing::Member { .. }),
+ self.syncs_with_us,
+ )
+ }
+
/// The wait before the next HELLO: a probe's if unreachable.
pub(crate) fn next_hello_wait(&mut self) -> Duration {
if self.is_unreachable() {