@@ -184,7 +184,7 @@ or refrain from preferring datacenters (which may ban all other datacenters, if
184184 |node| ( self . pick_predicate ) ( node, None ) ,
185185 NodeLocationCriteria :: DatacenterAndRack ( dc, rack) ,
186186 ) ;
187- let local_rack_picked = self . pick_node ( nodes, |node| rack_predicate ( & node ) ) ;
187+ let local_rack_picked = self . pick_node ( nodes, rack_predicate) ;
188188
189189 if let Some ( alive_local_rack) = local_rack_picked {
190190 return Some ( ( alive_local_rack, None ) ) ;
@@ -471,7 +471,7 @@ impl DefaultPolicy {
471471 fn make_rack_predicate < ' a > (
472472 predicate : impl Fn ( NodeRef < ' a > ) -> bool + ' a ,
473473 replica_location : NodeLocationCriteria < ' a > ,
474- ) -> impl Fn ( & NodeRef < ' a > ) -> bool {
474+ ) -> impl Fn ( NodeRef < ' a > ) -> bool {
475475 move |node| match replica_location {
476476 NodeLocationCriteria :: Any | NodeLocationCriteria :: Datacenter ( _) => predicate ( node) ,
477477 NodeLocationCriteria :: DatacenterAndRack ( _, rack) => {
@@ -662,12 +662,9 @@ impl DefaultPolicy {
662662 fn round_robin_nodes < ' a > (
663663 & ' a self ,
664664 nodes : & ' a [ Arc < Node > ] ,
665- // I wanted this to be
666- // impl Fn(&NodeRef<'a>) -> bool
667- // but I have no idea how to make this work with borrow checker
668- predicate : impl Fn ( & NodeRef < ' a > ) -> bool ,
665+ predicate : impl Fn ( NodeRef < ' a > ) -> bool ,
669666 ) -> impl Iterator < Item = NodeRef < ' _ > > {
670- Self :: randomly_rotated_nodes ( nodes) . filter ( predicate)
667+ Self :: randomly_rotated_nodes ( nodes) . filter ( move |node| predicate ( node ) )
671668 }
672669
673670 fn shuffle < ' a > (
0 commit comments