From 736289b064c53c215249aad70b3a6a96e79b6021 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Fri, 27 May 2022 14:20:05 +0200 Subject: Ensure me is always contained in all --- src/model/locate.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/model/locate.rs b/src/model/locate.rs index c73c0339..05204d2e 100644 --- a/src/model/locate.rs +++ b/src/model/locate.rs @@ -112,7 +112,15 @@ impl EntryNode { let index = ctx .pins .iter() - .filter(|other| other.is_in(&self.group) && other.flow < pin.flow) + .enumerate() + .filter(|&(k, other)| { + other.is_in(&self.group) + && if k < idx { + other.flow <= pin.flow + } else { + other.flow < pin.flow + } + }) .count(); // Prepare first argument. @@ -248,7 +256,7 @@ impl PinBoard { /// Encode a group into a user-facing array. fn encode_group(&self, group: &Group) -> Array { - let mut all: Vec<_> = self.iter().filter(|other| other.is_in(group)).collect(); + let mut all: Vec<_> = self.iter().filter(|pin| pin.is_in(group)).collect(); all.sort_by_key(|pin| pin.flow); all.iter() .enumerate() -- cgit v1.2.3