From c7a787a3276cadad7ee51577f65158b4888c058c Mon Sep 17 00:00:00 2001 From: Vojtech Kral Date: Fri, 16 Oct 2020 20:24:49 +0200 Subject: [PATCH] liballoc: VecDeque: Simplify binary_search_by() --- library/alloc/src/collections/vec_deque.rs | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/library/alloc/src/collections/vec_deque.rs b/library/alloc/src/collections/vec_deque.rs index 6ba0a463da4..94dac1cd176 100644 --- a/library/alloc/src/collections/vec_deque.rs +++ b/library/alloc/src/collections/vec_deque.rs @@ -2516,24 +2516,13 @@ impl VecDeque { where F: FnMut(&'a T) -> Ordering, { - if self.is_empty() { - return Err(0); - } - let (front, back) = self.as_slices(); - match back.first().map(|elem| f(elem)) { - Some(Ordering::Equal) => return Ok(front.len()), - Some(Ordering::Less) => { - return back[1..] - .binary_search_by(f) - .map(|idx| idx + front.len() + 1) - .map_err(|idx| idx + front.len() + 1); - } - _ => {} + if let Some(Ordering::Less | Ordering::Equal) = back.first().map(|elem| f(elem)) { + back.binary_search_by(f).map(|idx| idx + front.len()).map_err(|idx| idx + front.len()) + } else { + front.binary_search_by(f) } - - front.binary_search_by(f) } /// Binary searches this sorted `VecDeque` with a key extraction function.