File tree Expand file tree Collapse file tree 2 files changed +5
-4
lines changed
src/protocol/libp2p/kademlia Expand file tree Collapse file tree 2 files changed +5
-4
lines changed Original file line number Diff line number Diff line change @@ -101,8 +101,8 @@ impl KBucket {
101
101
102
102
/// Get iterator over the k-bucket, sorting the k-bucket entries in increasing order
103
103
/// by distance.
104
- pub fn closest_iter < K : Clone > ( & self , target : & Key < K > ) -> impl Iterator < Item = KademliaPeer > {
105
- let mut nodes = self . nodes . clone ( ) ;
104
+ pub fn closest_iter < K : Clone > ( & self , target : & Key < K > ) -> impl Iterator < Item = & KademliaPeer > {
105
+ let mut nodes: Vec < _ > = self . nodes . iter ( ) . collect ( ) ;
106
106
nodes. sort_by ( |a, b| target. distance ( & a. key ) . cmp ( & target. distance ( & b. key ) ) ) ;
107
107
nodes. into_iter ( ) . filter ( |peer| !peer. addresses . is_empty ( ) )
108
108
}
Original file line number Diff line number Diff line change @@ -187,9 +187,10 @@ impl RoutingTable {
187
187
188
188
/// Get `limit` closest peers to `target` from the k-buckets.
189
189
pub fn closest < K : Clone > ( & mut self , target : & Key < K > , limit : usize ) -> Vec < KademliaPeer > {
190
- ClosestBucketsIter :: new ( self . local_key . distance ( target) )
191
- . flat_map ( |index| self . buckets [ index. get ( ) ] . closest_iter ( target) )
190
+ ClosestBucketsIter :: new ( self . local_key . distance ( & target) )
191
+ . flat_map ( |index| self . buckets [ index. get ( ) ] . closest_iter ( & target) )
192
192
. take ( limit)
193
+ . cloned ( )
193
194
. collect ( )
194
195
}
195
196
}
You can’t perform that action at this time.
0 commit comments