about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndy Kurnia <andykurn@gmail.com>2024-03-24 08:15:00 +0800
committerAndy Kurnia <andykurn@gmail.com>2024-03-24 08:15:00 +0800
commit643029693b2987b4b7c8b5073e8a25536cca7069 (patch)
treedab00783f9a58d1d09f9789cafce836c20dae7d0
parent5afe4a9e09b09b2a74cf5cbce5b69ca40b3873a9 (diff)
downloadrust-643029693b2987b4b7c8b5073e8a25536cca7069.tar.gz
rust-643029693b2987b4b7c8b5073e8a25536cca7069.zip
clarify equivalency of binary_search and partition_point
-rw-r--r--library/alloc/src/collections/vec_deque/mod.rs4
-rw-r--r--library/core/src/slice/mod.rs4
2 files changed, 6 insertions, 2 deletions
diff --git a/library/alloc/src/collections/vec_deque/mod.rs b/library/alloc/src/collections/vec_deque/mod.rs
index 41935a69420..b1752a3465f 100644
--- a/library/alloc/src/collections/vec_deque/mod.rs
+++ b/library/alloc/src/collections/vec_deque/mod.rs
@@ -2465,7 +2465,9 @@ impl<T, A: Allocator> VecDeque<T, A> {
     /// let mut deque: VecDeque<_> = [0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55].into();
     /// let num = 42;
     /// let idx = deque.partition_point(|&x| x <= num);
-    /// // The above is equivalent to `let idx = deque.binary_search(&num).unwrap_or_else(|x| x);`
+    /// // If `num` is unique, `s.partition_point(|&x| x < num)` (with `<`) is equivalent to
+    /// // `s.binary_search(&num).unwrap_or_else(|x| x)`, but using `<=` may allow `insert`
+    /// // to shift less elements.
     /// deque.insert(idx, num);
     /// assert_eq!(deque, &[0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 42, 55]);
     /// ```
diff --git a/library/core/src/slice/mod.rs b/library/core/src/slice/mod.rs
index b1ae07b05f7..d30ede7d1f9 100644
--- a/library/core/src/slice/mod.rs
+++ b/library/core/src/slice/mod.rs
@@ -2729,7 +2729,9 @@ impl<T> [T] {
     /// let mut s = vec![0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55];
     /// let num = 42;
     /// let idx = s.partition_point(|&x| x <= num);
-    /// // The above is equivalent to `let idx = s.binary_search(&num).unwrap_or_else(|x| x);`
+    /// // If `num` is unique, `s.partition_point(|&x| x < num)` (with `<`) is equivalent to
+    /// // `s.binary_search(&num).unwrap_or_else(|x| x)`, but using `<=` will allow `insert`
+    /// // to shift less elements.
     /// s.insert(idx, num);
     /// assert_eq!(s, [0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 42, 55]);
     /// ```