@@ -1328,14 +1328,18 @@ impl<T, A: Allocator> VecDeque<T, A> {
1328
1328
/// deque.push_back(1);
1329
1329
/// deque.push_back(2);
1330
1330
///
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);
1333
1335
///
1334
1336
/// deque.push_front(10);
1335
1337
/// deque.push_front(9);
1336
1338
///
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);
1339
1343
/// ```
1340
1344
#[ inline]
1341
1345
#[ stable( feature = "deque_extras_15" , since = "1.5.0" ) ]
@@ -1363,20 +1367,28 @@ impl<T, A: Allocator> VecDeque<T, A> {
1363
1367
///
1364
1368
/// let mut deque = VecDeque::new();
1365
1369
///
1370
+ /// deque.push_back(0);
1366
1371
/// deque.push_back(1);
1367
- /// deque.push_back(2);
1368
- /// deque.push_back(3);
1369
- /// deque.push_back(4);
1370
1372
///
1371
- /// let (front, back) = deque.as_mut_slices();
1373
+ /// deque.push_front(10);
1374
+ /// deque.push_front(9);
1372
1375
///
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]);
1380
1392
/// ```
1381
1393
#[ inline]
1382
1394
#[ stable( feature = "deque_extras_15" , since = "1.5.0" ) ]
0 commit comments