Rollup merge of #112151 - chloekek:patch-1, r=workingjubilee

Clarify behavior of inclusive bounds in BTreeMap::{lower,upper}_bound

It wasn’t quite clear to me how these methods would interpret inclusive bounds so I added examples for those.
This commit is contained in:
fee1-dead 2023-07-30 07:13:01 +00:00 committed by GitHub
commit 3143030cda
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2543,6 +2543,8 @@ pub const fn is_empty(&self) -> bool {
/// a.insert(2, "b"); /// a.insert(2, "b");
/// a.insert(3, "c"); /// a.insert(3, "c");
/// a.insert(4, "c"); /// a.insert(4, "c");
/// let cursor = a.lower_bound(Bound::Included(&2));
/// assert_eq!(cursor.key(), Some(&2));
/// let cursor = a.lower_bound(Bound::Excluded(&2)); /// let cursor = a.lower_bound(Bound::Excluded(&2));
/// assert_eq!(cursor.key(), Some(&3)); /// assert_eq!(cursor.key(), Some(&3));
/// ``` /// ```
@ -2582,6 +2584,8 @@ pub fn lower_bound<Q>(&self, bound: Bound<&Q>) -> Cursor<'_, K, V>
/// a.insert(2, "b"); /// a.insert(2, "b");
/// a.insert(3, "c"); /// a.insert(3, "c");
/// a.insert(4, "c"); /// a.insert(4, "c");
/// let cursor = a.lower_bound_mut(Bound::Included(&2));
/// assert_eq!(cursor.key(), Some(&2));
/// let cursor = a.lower_bound_mut(Bound::Excluded(&2)); /// let cursor = a.lower_bound_mut(Bound::Excluded(&2));
/// assert_eq!(cursor.key(), Some(&3)); /// assert_eq!(cursor.key(), Some(&3));
/// ``` /// ```
@ -2634,6 +2638,8 @@ pub fn lower_bound_mut<Q>(&mut self, bound: Bound<&Q>) -> CursorMut<'_, K, V, A>
/// a.insert(2, "b"); /// a.insert(2, "b");
/// a.insert(3, "c"); /// a.insert(3, "c");
/// a.insert(4, "c"); /// a.insert(4, "c");
/// let cursor = a.upper_bound(Bound::Included(&3));
/// assert_eq!(cursor.key(), Some(&3));
/// let cursor = a.upper_bound(Bound::Excluded(&3)); /// let cursor = a.upper_bound(Bound::Excluded(&3));
/// assert_eq!(cursor.key(), Some(&2)); /// assert_eq!(cursor.key(), Some(&2));
/// ``` /// ```
@ -2673,6 +2679,8 @@ pub fn upper_bound<Q>(&self, bound: Bound<&Q>) -> Cursor<'_, K, V>
/// a.insert(2, "b"); /// a.insert(2, "b");
/// a.insert(3, "c"); /// a.insert(3, "c");
/// a.insert(4, "c"); /// a.insert(4, "c");
/// let cursor = a.upper_bound_mut(Bound::Included(&3));
/// assert_eq!(cursor.key(), Some(&3));
/// let cursor = a.upper_bound_mut(Bound::Excluded(&3)); /// let cursor = a.upper_bound_mut(Bound::Excluded(&3));
/// assert_eq!(cursor.key(), Some(&2)); /// assert_eq!(cursor.key(), Some(&2));
/// ``` /// ```