X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Flibcollections%2Fbtree%2Fset.rs;h=e05533aa50e3cf0d7ee3bd955a213d8642bd0eb4;hb=535ee6c7f05e29a6e94edba06b228d64f8ba74ec;hp=9dbb61379379e9177145482ee3267c1c658c25db;hpb=8ae1d444cbd8515289818ee3e6c13bf30a7a227a;p=rust.git diff --git a/src/libcollections/btree/set.rs b/src/libcollections/btree/set.rs index 9dbb6137937..e05533aa50e 100644 --- a/src/libcollections/btree/set.rs +++ b/src/libcollections/btree/set.rs @@ -74,9 +74,10 @@ pub struct BTreeSet { map: BTreeMap, } -/// An iterator over a `BTreeSet`'s items. +/// An iterator over the items of a `BTreeSet`. /// -/// This structure is created by the [`iter`] method on [`BTreeSet`]. +/// This `struct` is created by the [`iter`] method on [`BTreeSet`]. +/// See its documentation for more. /// /// [`BTreeSet`]: struct.BTreeSet.html /// [`iter`]: struct.BTreeSet.html#method.iter @@ -94,21 +95,23 @@ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { } } -/// An owning iterator over a `BTreeSet`'s items. +/// An owning iterator over the items of a `BTreeSet`. /// -/// This structure is created by the `into_iter` method on [`BTreeSet`] -/// [`BTreeSet`] (provided by the `IntoIterator` trait). +/// This `struct` is created by the [`into_iter`] method on [`BTreeSet`] +/// (provided by the `IntoIterator` trait). See its documentation for more. /// /// [`BTreeSet`]: struct.BTreeSet.html +/// [`into_iter`]: struct.BTreeSet.html#method.into_iter #[stable(feature = "rust1", since = "1.0.0")] #[derive(Debug)] pub struct IntoIter { iter: ::btree_map::IntoIter, } -/// An iterator over a sub-range of `BTreeSet`'s items. +/// An iterator over a sub-range of items in a `BTreeSet`. /// -/// This structure is created by the [`range`] method on [`BTreeSet`]. +/// This `struct` is created by the [`range`] method on [`BTreeSet`]. +/// See its documentation for more. /// /// [`BTreeSet`]: struct.BTreeSet.html /// [`range`]: struct.BTreeSet.html#method.range @@ -118,9 +121,10 @@ pub struct Range<'a, T: 'a> { iter: ::btree_map::Range<'a, T, ()>, } -/// A lazy iterator producing elements in the set difference (in-order). +/// A lazy iterator producing elements in the difference of `BTreeSet`s. /// -/// This structure is created by the [`difference`] method on [`BTreeSet`]. +/// This `struct` is created by the [`difference`] method on [`BTreeSet`]. +/// See its documentation for more. /// /// [`BTreeSet`]: struct.BTreeSet.html /// [`difference`]: struct.BTreeSet.html#method.difference @@ -134,15 +138,16 @@ pub struct Difference<'a, T: 'a> { impl<'a, T: 'a + fmt::Debug> fmt::Debug for Difference<'a, T> { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_tuple("Difference") - .field(&self.clone()) + .field(&self.a) + .field(&self.b) .finish() } } -/// A lazy iterator producing elements in the set symmetric difference (in-order). +/// A lazy iterator producing elements in the symmetric difference of `BTreeSet`s. /// -/// This structure is created by the [`symmetric_difference`] method on -/// [`BTreeSet`]. +/// This `struct` is created by the [`symmetric_difference`] method on +/// [`BTreeSet`]. See its documentation for more. /// /// [`BTreeSet`]: struct.BTreeSet.html /// [`symmetric_difference`]: struct.BTreeSet.html#method.symmetric_difference @@ -156,14 +161,16 @@ pub struct SymmetricDifference<'a, T: 'a> { impl<'a, T: 'a + fmt::Debug> fmt::Debug for SymmetricDifference<'a, T> { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_tuple("SymmetricDifference") - .field(&self.clone()) + .field(&self.a) + .field(&self.b) .finish() } } -/// A lazy iterator producing elements in the set intersection (in-order). +/// A lazy iterator producing elements in the intersection of `BTreeSet`s. /// -/// This structure is created by the [`intersection`] method on [`BTreeSet`]. +/// This `struct` is created by the [`intersection`] method on [`BTreeSet`]. +/// See its documentation for more. /// /// [`BTreeSet`]: struct.BTreeSet.html /// [`intersection`]: struct.BTreeSet.html#method.intersection @@ -177,14 +184,16 @@ pub struct Intersection<'a, T: 'a> { impl<'a, T: 'a + fmt::Debug> fmt::Debug for Intersection<'a, T> { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_tuple("Intersection") - .field(&self.clone()) + .field(&self.a) + .field(&self.b) .finish() } } -/// A lazy iterator producing elements in the set union (in-order). +/// A lazy iterator producing elements in the union of `BTreeSet`s. /// -/// This structure is created by the [`union`] method on [`BTreeSet`]. +/// This `struct` is created by the [`union`] method on [`BTreeSet`]. +/// See its documentation for more. /// /// [`BTreeSet`]: struct.BTreeSet.html /// [`union`]: struct.BTreeSet.html#method.union @@ -198,7 +207,8 @@ pub struct Union<'a, T: 'a> { impl<'a, T: 'a + fmt::Debug> fmt::Debug for Union<'a, T> { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.debug_tuple("Union") - .field(&self.clone()) + .field(&self.a) + .field(&self.b) .finish() } } @@ -728,7 +738,7 @@ impl IntoIterator for BTreeSet { type Item = T; type IntoIter = IntoIter; - /// Gets an iterator for moving out the BtreeSet's contents. + /// Gets an iterator for moving out the `BTreeSet`'s contents. /// /// # Examples /// @@ -935,11 +945,14 @@ fn len(&self) -> usize { self.iter.len() } #[unstable(feature = "fused", issue = "35602")] impl FusedIterator for IntoIter {} +#[stable(feature = "btree_range", since = "1.17.0")] impl<'a, T> Clone for Range<'a, T> { fn clone(&self) -> Range<'a, T> { Range { iter: self.iter.clone() } } } + +#[stable(feature = "btree_range", since = "1.17.0")] impl<'a, T> Iterator for Range<'a, T> { type Item = &'a T; @@ -947,6 +960,8 @@ fn next(&mut self) -> Option<&'a T> { self.iter.next().map(|(k, _)| k) } } + +#[stable(feature = "btree_range", since = "1.17.0")] impl<'a, T> DoubleEndedIterator for Range<'a, T> { fn next_back(&mut self) -> Option<&'a T> { self.iter.next_back().map(|(k, _)| k)