Skip to content

Commit 1dd0ac1

Browse files
authored
Rollup merge of #91861 - juniorbassani:use-from-array-in-collections-examples, r=yaahc
Replace iterator-based construction of collections by `Into<T>` Just a few quality of life improvements in the doc examples. I also removed some `Vec`s in favor of arrays.
2 parents faf2b7f + 8936659 commit 1dd0ac1

File tree

3 files changed

+35
-40
lines changed

3 files changed

+35
-40
lines changed

library/alloc/src/collections/binary_heap.rs

+15-18
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,7 @@ impl<T: Ord> BinaryHeap<T> {
433433
///
434434
/// ```
435435
/// use std::collections::BinaryHeap;
436-
/// let mut heap = BinaryHeap::from(vec![1, 3]);
436+
/// let mut heap = BinaryHeap::from([1, 3]);
437437
///
438438
/// assert_eq!(heap.pop(), Some(3));
439439
/// assert_eq!(heap.pop(), Some(1));
@@ -506,7 +506,7 @@ impl<T: Ord> BinaryHeap<T> {
506506
/// ```
507507
/// use std::collections::BinaryHeap;
508508
///
509-
/// let mut heap = BinaryHeap::from(vec![1, 2, 4, 5, 7]);
509+
/// let mut heap = BinaryHeap::from([1, 2, 4, 5, 7]);
510510
/// heap.push(6);
511511
/// heap.push(3);
512512
///
@@ -725,11 +725,8 @@ impl<T: Ord> BinaryHeap<T> {
725725
/// ```
726726
/// use std::collections::BinaryHeap;
727727
///
728-
/// let v = vec![-10, 1, 2, 3, 3];
729-
/// let mut a = BinaryHeap::from(v);
730-
///
731-
/// let v = vec![-20, 5, 43];
732-
/// let mut b = BinaryHeap::from(v);
728+
/// let mut a = BinaryHeap::from([-10, 1, 2, 3, 3]);
729+
/// let mut b = BinaryHeap::from([-20, 5, 43]);
733730
///
734731
/// a.append(&mut b);
735732
///
@@ -765,7 +762,7 @@ impl<T: Ord> BinaryHeap<T> {
765762
/// #![feature(binary_heap_drain_sorted)]
766763
/// use std::collections::BinaryHeap;
767764
///
768-
/// let mut heap = BinaryHeap::from(vec![1, 2, 3, 4, 5]);
765+
/// let mut heap = BinaryHeap::from([1, 2, 3, 4, 5]);
769766
/// assert_eq!(heap.len(), 5);
770767
///
771768
/// drop(heap.drain_sorted()); // removes all elements in heap order
@@ -790,7 +787,7 @@ impl<T: Ord> BinaryHeap<T> {
790787
/// #![feature(binary_heap_retain)]
791788
/// use std::collections::BinaryHeap;
792789
///
793-
/// let mut heap = BinaryHeap::from(vec![-10, -5, 1, 2, 4, 13]);
790+
/// let mut heap = BinaryHeap::from([-10, -5, 1, 2, 4, 13]);
794791
///
795792
/// heap.retain(|x| x % 2 == 0); // only keep even numbers
796793
///
@@ -826,7 +823,7 @@ impl<T> BinaryHeap<T> {
826823
///
827824
/// ```
828825
/// use std::collections::BinaryHeap;
829-
/// let heap = BinaryHeap::from(vec![1, 2, 3, 4]);
826+
/// let heap = BinaryHeap::from([1, 2, 3, 4]);
830827
///
831828
/// // Print 1, 2, 3, 4 in arbitrary order
832829
/// for x in heap.iter() {
@@ -848,9 +845,9 @@ impl<T> BinaryHeap<T> {
848845
/// ```
849846
/// #![feature(binary_heap_into_iter_sorted)]
850847
/// use std::collections::BinaryHeap;
851-
/// let heap = BinaryHeap::from(vec![1, 2, 3, 4, 5]);
848+
/// let heap = BinaryHeap::from([1, 2, 3, 4, 5]);
852849
///
853-
/// assert_eq!(heap.into_iter_sorted().take(2).collect::<Vec<_>>(), vec![5, 4]);
850+
/// assert_eq!(heap.into_iter_sorted().take(2).collect::<Vec<_>>(), [5, 4]);
854851
/// ```
855852
#[unstable(feature = "binary_heap_into_iter_sorted", issue = "59278")]
856853
pub fn into_iter_sorted(self) -> IntoIterSorted<T> {
@@ -1086,7 +1083,7 @@ impl<T> BinaryHeap<T> {
10861083
/// use std::collections::BinaryHeap;
10871084
/// use std::io::{self, Write};
10881085
///
1089-
/// let heap = BinaryHeap::from(vec![1, 2, 3, 4, 5, 6, 7]);
1086+
/// let heap = BinaryHeap::from([1, 2, 3, 4, 5, 6, 7]);
10901087
///
10911088
/// io::sink().write(heap.as_slice()).unwrap();
10921089
/// ```
@@ -1105,7 +1102,7 @@ impl<T> BinaryHeap<T> {
11051102
///
11061103
/// ```
11071104
/// use std::collections::BinaryHeap;
1108-
/// let heap = BinaryHeap::from(vec![1, 2, 3, 4, 5, 6, 7]);
1105+
/// let heap = BinaryHeap::from([1, 2, 3, 4, 5, 6, 7]);
11091106
/// let vec = heap.into_vec();
11101107
///
11111108
/// // Will print in some order
@@ -1127,7 +1124,7 @@ impl<T> BinaryHeap<T> {
11271124
///
11281125
/// ```
11291126
/// use std::collections::BinaryHeap;
1130-
/// let heap = BinaryHeap::from(vec![1, 3]);
1127+
/// let heap = BinaryHeap::from([1, 3]);
11311128
///
11321129
/// assert_eq!(heap.len(), 2);
11331130
/// ```
@@ -1171,7 +1168,7 @@ impl<T> BinaryHeap<T> {
11711168
///
11721169
/// ```
11731170
/// use std::collections::BinaryHeap;
1174-
/// let mut heap = BinaryHeap::from(vec![1, 3]);
1171+
/// let mut heap = BinaryHeap::from([1, 3]);
11751172
///
11761173
/// assert!(!heap.is_empty());
11771174
///
@@ -1195,7 +1192,7 @@ impl<T> BinaryHeap<T> {
11951192
///
11961193
/// ```
11971194
/// use std::collections::BinaryHeap;
1198-
/// let mut heap = BinaryHeap::from(vec![1, 3]);
1195+
/// let mut heap = BinaryHeap::from([1, 3]);
11991196
///
12001197
/// assert!(!heap.is_empty());
12011198
///
@@ -1616,7 +1613,7 @@ impl<T> IntoIterator for BinaryHeap<T> {
16161613
///
16171614
/// ```
16181615
/// use std::collections::BinaryHeap;
1619-
/// let heap = BinaryHeap::from(vec![1, 2, 3, 4]);
1616+
/// let heap = BinaryHeap::from([1, 2, 3, 4]);
16201617
///
16211618
/// // Print 1, 2, 3, 4 in arbitrary order
16221619
/// for x in heap.into_iter() {

library/alloc/src/collections/btree/map.rs

+5-7
Original file line numberDiff line numberDiff line change
@@ -1098,10 +1098,8 @@ impl<K, V> BTreeMap<K, V> {
10981098
/// ```
10991099
/// use std::collections::BTreeMap;
11001100
///
1101-
/// let mut map: BTreeMap<&str, i32> = ["Alice", "Bob", "Carol", "Cheryl"]
1102-
/// .iter()
1103-
/// .map(|&s| (s, 0))
1104-
/// .collect();
1101+
/// let mut map: BTreeMap<&str, i32> =
1102+
/// [("Alice", 0), ("Bob", 0), ("Carol", 0), ("Cheryl", 0)].into();
11051103
/// for (_, balance) in map.range_mut("B".."Cheryl") {
11061104
/// *balance += 100;
11071105
/// }
@@ -1135,7 +1133,7 @@ impl<K, V> BTreeMap<K, V> {
11351133
/// let mut count: BTreeMap<&str, usize> = BTreeMap::new();
11361134
///
11371135
/// // count the number of occurrences of letters in the vec
1138-
/// for x in vec!["a", "b", "a", "c", "a", "b"] {
1136+
/// for x in ["a", "b", "a", "c", "a", "b"] {
11391137
/// *count.entry(x).or_insert(0) += 1;
11401138
/// }
11411139
///
@@ -1235,8 +1233,8 @@ impl<K, V> BTreeMap<K, V> {
12351233
/// let mut map: BTreeMap<i32, i32> = (0..8).map(|x| (x, x)).collect();
12361234
/// let evens: BTreeMap<_, _> = map.drain_filter(|k, _v| k % 2 == 0).collect();
12371235
/// let odds = map;
1238-
/// assert_eq!(evens.keys().copied().collect::<Vec<_>>(), vec![0, 2, 4, 6]);
1239-
/// assert_eq!(odds.keys().copied().collect::<Vec<_>>(), vec![1, 3, 5, 7]);
1236+
/// assert_eq!(evens.keys().copied().collect::<Vec<_>>(), [0, 2, 4, 6]);
1237+
/// assert_eq!(odds.keys().copied().collect::<Vec<_>>(), [1, 3, 5, 7]);
12401238
/// ```
12411239
#[unstable(feature = "btree_drain_filter", issue = "70530")]
12421240
pub fn drain_filter<F>(&mut self, pred: F) -> DrainFilter<'_, K, V, F>

library/alloc/src/collections/vec_deque/mod.rs

+15-15
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
669669
/// ```
670670
/// use std::collections::VecDeque;
671671
///
672-
/// let mut buf: VecDeque<i32> = [1].into_iter().collect();
672+
/// let mut buf: VecDeque<i32> = [1].into();
673673
/// buf.reserve_exact(10);
674674
/// assert!(buf.capacity() >= 11);
675675
/// ```
@@ -692,7 +692,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
692692
/// ```
693693
/// use std::collections::VecDeque;
694694
///
695-
/// let mut buf: VecDeque<i32> = [1].into_iter().collect();
695+
/// let mut buf: VecDeque<i32> = [1].into();
696696
/// buf.reserve(10);
697697
/// assert!(buf.capacity() >= 11);
698698
/// ```
@@ -1153,7 +1153,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
11531153
/// ```
11541154
/// use std::collections::VecDeque;
11551155
///
1156-
/// let v: VecDeque<_> = [1, 2, 3].into_iter().collect();
1156+
/// let v: VecDeque<_> = [1, 2, 3].into();
11571157
/// let range = v.range(2..).copied().collect::<VecDeque<_>>();
11581158
/// assert_eq!(range, [3]);
11591159
///
@@ -1188,17 +1188,17 @@ impl<T, A: Allocator> VecDeque<T, A> {
11881188
/// ```
11891189
/// use std::collections::VecDeque;
11901190
///
1191-
/// let mut v: VecDeque<_> = [1, 2, 3].into_iter().collect();
1191+
/// let mut v: VecDeque<_> = [1, 2, 3].into();
11921192
/// for v in v.range_mut(2..) {
11931193
/// *v *= 2;
11941194
/// }
1195-
/// assert_eq!(v, vec![1, 2, 6]);
1195+
/// assert_eq!(v, [1, 2, 6]);
11961196
///
11971197
/// // A full range covers all contents
11981198
/// for v in v.range_mut(..) {
11991199
/// *v *= 2;
12001200
/// }
1201-
/// assert_eq!(v, vec![2, 4, 12]);
1201+
/// assert_eq!(v, [2, 4, 12]);
12021202
/// ```
12031203
#[inline]
12041204
#[stable(feature = "deque_range", since = "1.51.0")]
@@ -1235,7 +1235,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
12351235
/// ```
12361236
/// use std::collections::VecDeque;
12371237
///
1238-
/// let mut v: VecDeque<_> = [1, 2, 3].into_iter().collect();
1238+
/// let mut v: VecDeque<_> = [1, 2, 3].into();
12391239
/// let drained = v.drain(2..).collect::<VecDeque<_>>();
12401240
/// assert_eq!(drained, [3]);
12411241
/// assert_eq!(v, [1, 2]);
@@ -2025,7 +2025,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
20252025
/// ```
20262026
/// use std::collections::VecDeque;
20272027
///
2028-
/// let mut buf: VecDeque<_> = [1, 2, 3].into_iter().collect();
2028+
/// let mut buf: VecDeque<_> = [1, 2, 3].into();
20292029
/// let buf2 = buf.split_off(1);
20302030
/// assert_eq!(buf, [1]);
20312031
/// assert_eq!(buf2, [2, 3]);
@@ -2091,8 +2091,8 @@ impl<T, A: Allocator> VecDeque<T, A> {
20912091
/// ```
20922092
/// use std::collections::VecDeque;
20932093
///
2094-
/// let mut buf: VecDeque<_> = [1, 2].into_iter().collect();
2095-
/// let mut buf2: VecDeque<_> = [3, 4].into_iter().collect();
2094+
/// let mut buf: VecDeque<_> = [1, 2].into();
2095+
/// let mut buf2: VecDeque<_> = [3, 4].into();
20962096
/// buf.append(&mut buf2);
20972097
/// assert_eq!(buf, [1, 2, 3, 4]);
20982098
/// assert_eq!(buf2, []);
@@ -2547,7 +2547,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
25472547
/// ```
25482548
/// use std::collections::VecDeque;
25492549
///
2550-
/// let deque: VecDeque<_> = vec![0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55].into();
2550+
/// let deque: VecDeque<_> = [0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55].into();
25512551
///
25522552
/// assert_eq!(deque.binary_search(&13), Ok(9));
25532553
/// assert_eq!(deque.binary_search(&4), Err(7));
@@ -2562,7 +2562,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
25622562
/// ```
25632563
/// use std::collections::VecDeque;
25642564
///
2565-
/// let mut deque: VecDeque<_> = vec![0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55].into();
2565+
/// let mut deque: VecDeque<_> = [0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55].into();
25662566
/// let num = 42;
25672567
/// let idx = deque.binary_search(&num).unwrap_or_else(|x| x);
25682568
/// deque.insert(idx, num);
@@ -2605,7 +2605,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
26052605
/// ```
26062606
/// use std::collections::VecDeque;
26072607
///
2608-
/// let deque: VecDeque<_> = vec![0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55].into();
2608+
/// let deque: VecDeque<_> = [0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55].into();
26092609
///
26102610
/// assert_eq!(deque.binary_search_by(|x| x.cmp(&13)), Ok(9));
26112611
/// assert_eq!(deque.binary_search_by(|x| x.cmp(&4)), Err(7));
@@ -2658,7 +2658,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
26582658
/// ```
26592659
/// use std::collections::VecDeque;
26602660
///
2661-
/// let deque: VecDeque<_> = vec![(0, 0), (2, 1), (4, 1), (5, 1),
2661+
/// let deque: VecDeque<_> = [(0, 0), (2, 1), (4, 1), (5, 1),
26622662
/// (3, 1), (1, 2), (2, 3), (4, 5), (5, 8), (3, 13),
26632663
/// (1, 21), (2, 34), (4, 55)].into();
26642664
///
@@ -2701,7 +2701,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
27012701
/// ```
27022702
/// use std::collections::VecDeque;
27032703
///
2704-
/// let deque: VecDeque<_> = vec![1, 2, 3, 3, 5, 6, 7].into();
2704+
/// let deque: VecDeque<_> = [1, 2, 3, 3, 5, 6, 7].into();
27052705
/// let i = deque.partition_point(|&x| x < 5);
27062706
///
27072707
/// assert_eq!(i, 4);

0 commit comments

Comments
 (0)