From 6a99adeb71b678d5f7fb74865913d38473fad94e Mon Sep 17 00:00:00 2001 From: Nick Kocharhook Date: Sun, 19 Jan 2025 15:35:49 +0000 Subject: [PATCH] extract_if's sample equivalent now really equivalent. Simpler predicate. --- library/alloc/src/vec/mod.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/library/alloc/src/vec/mod.rs b/library/alloc/src/vec/mod.rs index cd2afd7a47319..646166adad754 100644 --- a/library/alloc/src/vec/mod.rs +++ b/library/alloc/src/vec/mod.rs @@ -3656,20 +3656,22 @@ impl Vec { /// /// ``` /// # use std::cmp::min; - /// # let some_predicate = |x: &mut i32| { *x == 2 || *x == 3 || *x == 6 }; - /// # let mut vec = vec![1, 2, 3, 4, 5, 6]; - /// # let range = 1..4; + /// # let some_predicate = |x: &mut i32| { *x % 2 == 1 }; + /// # let mut vec = vec![0, 1, 2, 3, 4, 5, 6]; + /// # let range = 1..5; /// let mut i = range.start; - /// while i < min(vec.len(), range.end) { + /// let mut end = range.end; + /// while i < min(vec.len(), end) { /// if some_predicate(&mut vec[i]) { /// let val = vec.remove(i); + /// end -= 1; /// // your code here /// } else { /// i += 1; /// } /// } /// - /// # assert_eq!(vec, vec![1, 4, 5]); + /// # assert_eq!(vec, vec![0, 2, 4, 5, 6]); /// ``` /// /// But `extract_if` is easier to use. `extract_if` is also more efficient,