@@ -795,8 +795,6 @@ impl<T> [T] {
795
795
/// # Examples
796
796
///
797
797
/// ```
798
- /// #![feature(rchunks)]
799
- ///
800
798
/// let slice = ['l', 'o', 'r', 'e', 'm'];
801
799
/// let mut iter = slice.rchunks(2);
802
800
/// assert_eq!(iter.next().unwrap(), &['e', 'm']);
@@ -807,7 +805,7 @@ impl<T> [T] {
807
805
///
808
806
/// [`rchunks_exact`]: #method.rchunks_exact
809
807
/// [`chunks`]: #method.chunks
810
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
808
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
811
809
#[ inline]
812
810
pub fn rchunks ( & self , chunk_size : usize ) -> RChunks < T > {
813
811
assert ! ( chunk_size != 0 ) ;
@@ -831,8 +829,6 @@ impl<T> [T] {
831
829
/// # Examples
832
830
///
833
831
/// ```
834
- /// #![feature(rchunks)]
835
- ///
836
832
/// let v = &mut [0, 0, 0, 0, 0];
837
833
/// let mut count = 1;
838
834
///
@@ -847,7 +843,7 @@ impl<T> [T] {
847
843
///
848
844
/// [`rchunks_exact_mut`]: #method.rchunks_exact_mut
849
845
/// [`chunks_mut`]: #method.chunks_mut
850
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
846
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
851
847
#[ inline]
852
848
pub fn rchunks_mut ( & mut self , chunk_size : usize ) -> RChunksMut < T > {
853
849
assert ! ( chunk_size != 0 ) ;
@@ -875,8 +871,6 @@ impl<T> [T] {
875
871
/// # Examples
876
872
///
877
873
/// ```
878
- /// #![feature(rchunks)]
879
- ///
880
874
/// let slice = ['l', 'o', 'r', 'e', 'm'];
881
875
/// let mut iter = slice.rchunks_exact(2);
882
876
/// assert_eq!(iter.next().unwrap(), &['e', 'm']);
@@ -887,7 +881,7 @@ impl<T> [T] {
887
881
///
888
882
/// [`rchunks`]: #method.rchunks
889
883
/// [`chunks_exact`]: #method.chunks_exact
890
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
884
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
891
885
#[ inline]
892
886
pub fn rchunks_exact ( & self , chunk_size : usize ) -> RChunksExact < T > {
893
887
assert ! ( chunk_size != 0 ) ;
@@ -917,8 +911,6 @@ impl<T> [T] {
917
911
/// # Examples
918
912
///
919
913
/// ```
920
- /// #![feature(rchunks)]
921
- ///
922
914
/// let v = &mut [0, 0, 0, 0, 0];
923
915
/// let mut count = 1;
924
916
///
@@ -933,7 +925,7 @@ impl<T> [T] {
933
925
///
934
926
/// [`rchunks_mut`]: #method.rchunks_mut
935
927
/// [`chunks_exact_mut`]: #method.chunks_exact_mut
936
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
928
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
937
929
#[ inline]
938
930
pub fn rchunks_exact_mut ( & mut self , chunk_size : usize ) -> RChunksExactMut < T > {
939
931
assert ! ( chunk_size != 0 ) ;
@@ -4256,14 +4248,14 @@ unsafe impl<'a, T> TrustedRandomAccess for ChunksExactMut<'a, T> {
4256
4248
/// [`rchunks`]: ../../std/primitive.slice.html#method.rchunks
4257
4249
/// [slices]: ../../std/primitive.slice.html
4258
4250
#[ derive( Debug ) ]
4259
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4251
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4260
4252
pub struct RChunks < ' a , T : ' a > {
4261
4253
v : & ' a [ T ] ,
4262
4254
chunk_size : usize
4263
4255
}
4264
4256
4265
4257
// FIXME(#26925) Remove in favor of `#[derive(Clone)]`
4266
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4258
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4267
4259
impl < ' a , T > Clone for RChunks < ' a , T > {
4268
4260
fn clone ( & self ) -> RChunks < ' a , T > {
4269
4261
RChunks {
@@ -4273,7 +4265,7 @@ impl<'a, T> Clone for RChunks<'a, T> {
4273
4265
}
4274
4266
}
4275
4267
4276
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4268
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4277
4269
impl < ' a , T > Iterator for RChunks < ' a , T > {
4278
4270
type Item = & ' a [ T ] ;
4279
4271
@@ -4337,7 +4329,7 @@ impl<'a, T> Iterator for RChunks<'a, T> {
4337
4329
}
4338
4330
}
4339
4331
4340
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4332
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4341
4333
impl < ' a , T > DoubleEndedIterator for RChunks < ' a , T > {
4342
4334
#[ inline]
4343
4335
fn next_back ( & mut self ) -> Option < & ' a [ T ] > {
@@ -4353,17 +4345,17 @@ impl<'a, T> DoubleEndedIterator for RChunks<'a, T> {
4353
4345
}
4354
4346
}
4355
4347
4356
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4348
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4357
4349
impl < ' a , T > ExactSizeIterator for RChunks < ' a , T > { }
4358
4350
4359
4351
#[ unstable( feature = "trusted_len" , issue = "37572" ) ]
4360
4352
unsafe impl < ' a , T > TrustedLen for RChunks < ' a , T > { }
4361
4353
4362
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4354
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4363
4355
impl < ' a , T > FusedIterator for RChunks < ' a , T > { }
4364
4356
4365
4357
#[ doc( hidden) ]
4366
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4358
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4367
4359
unsafe impl < ' a , T > TrustedRandomAccess for RChunks < ' a , T > {
4368
4360
unsafe fn get_unchecked ( & mut self , i : usize ) -> & ' a [ T ] {
4369
4361
let end = self . v . len ( ) - i * self . chunk_size ;
@@ -4387,13 +4379,13 @@ unsafe impl<'a, T> TrustedRandomAccess for RChunks<'a, T> {
4387
4379
/// [`rchunks_mut`]: ../../std/primitive.slice.html#method.rchunks_mut
4388
4380
/// [slices]: ../../std/primitive.slice.html
4389
4381
#[ derive( Debug ) ]
4390
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4382
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4391
4383
pub struct RChunksMut < ' a , T : ' a > {
4392
4384
v : & ' a mut [ T ] ,
4393
4385
chunk_size : usize
4394
4386
}
4395
4387
4396
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4388
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4397
4389
impl < ' a , T > Iterator for RChunksMut < ' a , T > {
4398
4390
type Item = & ' a mut [ T ] ;
4399
4391
@@ -4461,7 +4453,7 @@ impl<'a, T> Iterator for RChunksMut<'a, T> {
4461
4453
}
4462
4454
}
4463
4455
4464
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4456
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4465
4457
impl < ' a , T > DoubleEndedIterator for RChunksMut < ' a , T > {
4466
4458
#[ inline]
4467
4459
fn next_back ( & mut self ) -> Option < & ' a mut [ T ] > {
@@ -4478,17 +4470,17 @@ impl<'a, T> DoubleEndedIterator for RChunksMut<'a, T> {
4478
4470
}
4479
4471
}
4480
4472
4481
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4473
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4482
4474
impl < ' a , T > ExactSizeIterator for RChunksMut < ' a , T > { }
4483
4475
4484
4476
#[ unstable( feature = "trusted_len" , issue = "37572" ) ]
4485
4477
unsafe impl < ' a , T > TrustedLen for RChunksMut < ' a , T > { }
4486
4478
4487
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4479
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4488
4480
impl < ' a , T > FusedIterator for RChunksMut < ' a , T > { }
4489
4481
4490
4482
#[ doc( hidden) ]
4491
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4483
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4492
4484
unsafe impl < ' a , T > TrustedRandomAccess for RChunksMut < ' a , T > {
4493
4485
unsafe fn get_unchecked ( & mut self , i : usize ) -> & ' a mut [ T ] {
4494
4486
let end = self . v . len ( ) - i * self . chunk_size ;
@@ -4514,25 +4506,25 @@ unsafe impl<'a, T> TrustedRandomAccess for RChunksMut<'a, T> {
4514
4506
/// [`remainder`]: ../../std/slice/struct.ChunksExact.html#method.remainder
4515
4507
/// [slices]: ../../std/primitive.slice.html
4516
4508
#[ derive( Debug ) ]
4517
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4509
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4518
4510
pub struct RChunksExact < ' a , T : ' a > {
4519
4511
v : & ' a [ T ] ,
4520
4512
rem : & ' a [ T ] ,
4521
4513
chunk_size : usize
4522
4514
}
4523
4515
4524
- #[ unstable( feature = "rchunks" , issue = "55177" ) ]
4525
4516
impl < ' a , T > RChunksExact < ' a , T > {
4526
4517
/// Return the remainder of the original slice that is not going to be
4527
4518
/// returned by the iterator. The returned slice has at most `chunk_size-1`
4528
4519
/// elements.
4520
+ #[ stable( feature = "rchunks" , since = "1.31.0" ) ]
4529
4521
pub fn remainder ( & self ) -> & ' a [ T ] {
4530
4522
self . rem
4531
4523
}
4532
4524
}
4533
4525
4534
4526
// FIXME(#26925) Remove in favor of `#[derive(Clone)]`
4535
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4527
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4536
4528
impl < ' a , T > Clone for RChunksExact < ' a , T > {
4537
4529
fn clone ( & self ) -> RChunksExact < ' a , T > {
4538
4530
RChunksExact {
@@ -4543,7 +4535,7 @@ impl<'a, T> Clone for RChunksExact<'a, T> {
4543
4535
}
4544
4536
}
4545
4537
4546
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4538
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4547
4539
impl < ' a , T > Iterator for RChunksExact < ' a , T > {
4548
4540
type Item = & ' a [ T ] ;
4549
4541
@@ -4588,7 +4580,7 @@ impl<'a, T> Iterator for RChunksExact<'a, T> {
4588
4580
}
4589
4581
}
4590
4582
4591
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4583
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4592
4584
impl < ' a , T > DoubleEndedIterator for RChunksExact < ' a , T > {
4593
4585
#[ inline]
4594
4586
fn next_back ( & mut self ) -> Option < & ' a [ T ] > {
@@ -4602,7 +4594,7 @@ impl<'a, T> DoubleEndedIterator for RChunksExact<'a, T> {
4602
4594
}
4603
4595
}
4604
4596
4605
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4597
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4606
4598
impl < ' a , T > ExactSizeIterator for RChunksExact < ' a , T > {
4607
4599
fn is_empty ( & self ) -> bool {
4608
4600
self . v . is_empty ( )
@@ -4612,11 +4604,11 @@ impl<'a, T> ExactSizeIterator for RChunksExact<'a, T> {
4612
4604
#[ unstable( feature = "trusted_len" , issue = "37572" ) ]
4613
4605
unsafe impl < ' a , T > TrustedLen for RChunksExact < ' a , T > { }
4614
4606
4615
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4607
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4616
4608
impl < ' a , T > FusedIterator for RChunksExact < ' a , T > { }
4617
4609
4618
4610
#[ doc( hidden) ]
4619
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4611
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4620
4612
unsafe impl < ' a , T > TrustedRandomAccess for RChunksExact < ' a , T > {
4621
4613
unsafe fn get_unchecked ( & mut self , i : usize ) -> & ' a [ T ] {
4622
4614
let end = self . v . len ( ) - i * self . chunk_size ;
@@ -4639,24 +4631,24 @@ unsafe impl<'a, T> TrustedRandomAccess for RChunksExact<'a, T> {
4639
4631
/// [`into_remainder`]: ../../std/slice/struct.ChunksExactMut.html#method.into_remainder
4640
4632
/// [slices]: ../../std/primitive.slice.html
4641
4633
#[ derive( Debug ) ]
4642
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4634
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4643
4635
pub struct RChunksExactMut < ' a , T : ' a > {
4644
4636
v : & ' a mut [ T ] ,
4645
4637
rem : & ' a mut [ T ] ,
4646
4638
chunk_size : usize
4647
4639
}
4648
4640
4649
- #[ unstable( feature = "rchunks" , issue = "55177" ) ]
4650
4641
impl < ' a , T > RChunksExactMut < ' a , T > {
4651
4642
/// Return the remainder of the original slice that is not going to be
4652
4643
/// returned by the iterator. The returned slice has at most `chunk_size-1`
4653
4644
/// elements.
4645
+ #[ stable( feature = "rchunks" , since = "1.31.0" ) ]
4654
4646
pub fn into_remainder ( self ) -> & ' a mut [ T ] {
4655
4647
self . rem
4656
4648
}
4657
4649
}
4658
4650
4659
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4651
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4660
4652
impl < ' a , T > Iterator for RChunksExactMut < ' a , T > {
4661
4653
type Item = & ' a mut [ T ] ;
4662
4654
@@ -4705,7 +4697,7 @@ impl<'a, T> Iterator for RChunksExactMut<'a, T> {
4705
4697
}
4706
4698
}
4707
4699
4708
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4700
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4709
4701
impl < ' a , T > DoubleEndedIterator for RChunksExactMut < ' a , T > {
4710
4702
#[ inline]
4711
4703
fn next_back ( & mut self ) -> Option < & ' a mut [ T ] > {
@@ -4720,7 +4712,7 @@ impl<'a, T> DoubleEndedIterator for RChunksExactMut<'a, T> {
4720
4712
}
4721
4713
}
4722
4714
4723
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4715
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4724
4716
impl < ' a , T > ExactSizeIterator for RChunksExactMut < ' a , T > {
4725
4717
fn is_empty ( & self ) -> bool {
4726
4718
self . v . is_empty ( )
@@ -4730,11 +4722,11 @@ impl<'a, T> ExactSizeIterator for RChunksExactMut<'a, T> {
4730
4722
#[ unstable( feature = "trusted_len" , issue = "37572" ) ]
4731
4723
unsafe impl < ' a , T > TrustedLen for RChunksExactMut < ' a , T > { }
4732
4724
4733
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4725
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4734
4726
impl < ' a , T > FusedIterator for RChunksExactMut < ' a , T > { }
4735
4727
4736
4728
#[ doc( hidden) ]
4737
- #[ unstable ( feature = "rchunks" , issue = "55177 " ) ]
4729
+ #[ stable ( feature = "rchunks" , since = "1.31.0 " ) ]
4738
4730
unsafe impl < ' a , T > TrustedRandomAccess for RChunksExactMut < ' a , T > {
4739
4731
unsafe fn get_unchecked ( & mut self , i : usize ) -> & ' a mut [ T ] {
4740
4732
let end = self . v . len ( ) - i * self . chunk_size ;
0 commit comments