diff options
| author | Sebastian Widua <seppel3210@gmail.com> | 2021-06-20 11:19:55 +0200 |
|---|---|---|
| committer | Sebastian Widua <seppel3210@gmail.com> | 2021-06-20 12:52:10 +0200 |
| commit | 7b907597332e430653673531e2bc29b1ae286f3c (patch) | |
| tree | e030e646863b45e1fef8d544ebaef28ee9b67c28 | |
| parent | 96b7d07a477fc118b045e4ed49086dcf6975b962 (diff) | |
| download | rust-7b907597332e430653673531e2bc29b1ae286f3c.tar.gz rust-7b907597332e430653673531e2bc29b1ae286f3c.zip | |
Add documentation/example to Extend impl
| -rw-r--r-- | library/core/src/iter/traits/collect.rs | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/library/core/src/iter/traits/collect.rs b/library/core/src/iter/traits/collect.rs index f9ccb35d039..033b6084f1b 100644 --- a/library/core/src/iter/traits/collect.rs +++ b/library/core/src/iter/traits/collect.rs @@ -359,12 +359,30 @@ impl Extend<()> for () { fn extend_one(&mut self, _item: ()) {} } -#[stable(feature = "extend_for_tuple", since = "1.54.0")] +#[stable(feature = "extend_for_tuple", since = "1.55.0")] impl<A, B, ExtendA, ExtendB> Extend<(A, B)> for (ExtendA, ExtendB) where ExtendA: Extend<A>, ExtendB: Extend<B>, { + /// Allows to `extend` a tuple of collections that also implement `Extend`. + /// + /// See also: [`Iterator::unzip`] + /// + /// # Examples + /// ``` + /// let mut tuple = (vec![0], vec![1]); + /// tuple.extend(vec![(2, 3), (4, 5), (6, 7)]); + /// assert_eq!(tuple.0, vec![0, 2, 4, 6]); + /// assert_eq!(tuple.1, vec![1, 3, 5, 7]); + /// + /// // also allows for arbitrarily nested tuples + /// let mut nested_tuple = (vec![(1, -1)], vec![(2, -2)]); + /// nested_tuple.extend(vec![((3, -3), (4, -4)), ((5, -5), (6, -6))]); + /// + /// assert_eq!(nested_tuple.0, vec![(1, -1), (3, -3), (5, -5)]); + /// assert_eq!(nested_tuple.1, vec![(2, -2), (4, -4), (6, -6)]); + /// ``` fn extend<T: IntoIterator<Item = (A, B)>>(&mut self, into_iter: T) { let (a, b) = self; let iter = into_iter.into_iter(); |
