diff --git a/src/kbucket/bucket.rs b/src/kbucket/bucket.rs index c49a794c..d620fcab 100644 --- a/src/kbucket/bucket.rs +++ b/src/kbucket/bucket.rs @@ -94,6 +94,10 @@ impl PendingNode { &self.node.value } + pub fn value_mut(&mut self) -> &mut TVal { + &mut self.node.value + } + pub fn set_ready_at(&mut self, t: Instant) { self.replace = t; } diff --git a/src/kbucket/entry.rs b/src/kbucket/entry.rs index 72c4ac04..d3f1412e 100644 --- a/src/kbucket/entry.rs +++ b/src/kbucket/entry.rs @@ -183,6 +183,14 @@ where .value() } + pub fn value_mut(&mut self) -> &mut TVal { + self.0 + .bucket + .pending_mut() + .expect("We can only build a ConnectedPendingEntry if the entry is pending; QED") + .value_mut() + } + /// Updates the status of the pending entry. pub fn update(self, status: NodeStatus) -> PendingEntry<'a, TPeerId, TVal> { self.0.bucket.update_pending(status);