@@ -1328,14 +1328,18 @@ impl<T, A: Allocator> VecDeque<T, A> {
13281328 /// deque.push_back(1);
13291329 /// deque.push_back(2);
13301330 ///
1331- /// let slices = deque.as_slices();
1332- /// assert!(slices.0.iter().chain(slices.1.iter()).eq([0, 1, 2].iter()));
1331+ /// let expected = [0, 1, 2];
1332+ /// let (front, back) = deque.as_slices();
1333+ /// assert_eq!(&expected[..front.len()], front);
1334+ /// assert_eq!(&expected[front.len()..], back);
13331335 ///
13341336 /// deque.push_front(10);
13351337 /// deque.push_front(9);
13361338 ///
1337- /// let slices = deque.as_slices();
1338- /// assert!(slices.0.iter().chain(slices.1.iter()).eq([9, 10, 0, 1, 2].iter()));
1339+ /// let expected = [9, 10, 0, 1, 2];
1340+ /// let (front, back) = deque.as_slices();
1341+ /// assert_eq!(&expected[..front.len()], front);
1342+ /// assert_eq!(&expected[front.len()..], back);
13391343 /// ```
13401344 #[ inline]
13411345 #[ stable( feature = "deque_extras_15" , since = "1.5.0" ) ]
@@ -1363,20 +1367,28 @@ impl<T, A: Allocator> VecDeque<T, A> {
13631367 ///
13641368 /// let mut deque = VecDeque::new();
13651369 ///
1370+ /// deque.push_back(0);
13661371 /// deque.push_back(1);
1367- /// deque.push_back(2);
1368- /// deque.push_back(3);
1369- /// deque.push_back(4);
13701372 ///
1371- /// let (front, back) = deque.as_mut_slices();
1373+ /// deque.push_front(10);
1374+ /// deque.push_front(9);
13721375 ///
1373- /// if !front.is_empty() {
1374- /// front[0] = 5;
1375- /// assert_eq!(deque[0], 5);
1376- /// } else {
1377- /// back[back.len() - 1] = 5;
1378- /// assert_eq!(deque[deque.len() - 1], 5);
1379- /// }
1376+ /// // Since the split point is not guaranteed, we may need to update
1377+ /// // either slice.
1378+ /// let mut update_nth = |index: usize, val: u32| {
1379+ /// let (front, back) = deque.as_mut_slices();
1380+ /// if index > front.len() - 1 {
1381+ /// back[index - front.len()] = val;
1382+ /// } else {
1383+ /// front[index] = val;
1384+ /// }
1385+ /// };
1386+ ///
1387+ /// update_nth(0, 42);
1388+ /// update_nth(2, 24);
1389+ ///
1390+ /// let v: Vec<_> = deque.into();
1391+ /// assert_eq!(v, [42, 10, 24, 1]);
13801392 /// ```
13811393 #[ inline]
13821394 #[ stable( feature = "deque_extras_15" , since = "1.5.0" ) ]
0 commit comments