Skip to content

Commit

Permalink
Rollup merge of rust-lang#86789 - janikrabe:btreeset-drainfilter-doc,…
Browse files Browse the repository at this point in the history
… r=kennytm

Update BTreeSet::drain_filter documentation

This commit makes the documentation of `BTreeSet::drain_filter` more
consistent with that of `BTreeMap::drain_filter` after the changes in
f0b8166.

In particular, this explicitly documents the iteration order.
  • Loading branch information
GuillaumeGomez authored Jul 8, 2021
2 parents cfe1566 + 3b2ad49 commit 9cc3559
Showing 1 changed file with 11 additions and 9 deletions.
20 changes: 11 additions & 9 deletions library/alloc/src/collections/btree/set.rs
Original file line number Diff line number Diff line change
Expand Up @@ -940,18 +940,20 @@ impl<T> BTreeSet<T> {
BTreeSet { map: self.map.split_off(key) }
}

/// Creates an iterator which uses a closure to determine if a value should be removed.
/// Creates an iterator that visits all values in ascending order and uses a closure
/// to determine if a value should be removed.
///
/// If the closure returns true, then the value is removed and yielded.
/// If the closure returns false, the value will remain in the list and will not be yielded
/// by the iterator.
/// If the closure returns `true`, the value is removed from the set and yielded. If
/// the closure returns `false`, or panics, the value remains in the set and will
/// not be yielded.
///
/// If the iterator is only partially consumed or not consumed at all, each of the remaining
/// values will still be subjected to the closure and removed and dropped if it returns true.
/// If the iterator is only partially consumed or not consumed at all, each of the
/// remaining values is still subjected to the closure and removed and dropped if it
/// returns `true`.
///
/// It is unspecified how many more values will be subjected to the closure
/// if a panic occurs in the closure, or if a panic occurs while dropping a value, or if the
/// `DrainFilter` itself is leaked.
/// It is unspecified how many more values will be subjected to the closure if a
/// panic occurs in the closure, or if a panic occurs while dropping a value, or if
/// the `DrainFilter` itself is leaked.
///
/// # Examples
///
Expand Down

0 comments on commit 9cc3559

Please sign in to comment.