Skip to content

Commit 9156191

Browse files
Lorak-mmkwprzytula
andcommitted
default_lbp: get rid of redundant indirection
Co-authored-by: Wojciech Przytuła <[email protected]>
1 parent 6ecc444 commit 9156191

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

scylla/src/transport/load_balancing/default.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)