9
9
10
10
#![ stable( feature = "rust1" , since = "1.0.0" ) ]
11
11
12
+ use core:: array:: LengthAtMost32 ;
12
13
use core:: cmp:: { self , Ordering } ;
13
14
use core:: fmt;
14
15
use core:: iter:: { repeat_with, FromIterator , FusedIterator } ;
@@ -2571,13 +2572,14 @@ impl<A: PartialEq> PartialEq for VecDeque<A> {
2571
2572
impl < A : Eq > Eq for VecDeque < A > { }
2572
2573
2573
2574
macro_rules! __impl_slice_eq1 {
2574
- ( $Lhs: ty, $Rhs: ty) => {
2575
- __impl_slice_eq1! { $Lhs, $Rhs, Sized }
2576
- } ;
2577
- ( $Lhs: ty, $Rhs: ty, $Bound: ident) => {
2575
+ ( [ $( $vars: tt) * ] $lhs: ty, $rhs: ty, $( $constraints: tt) * ) => {
2578
2576
#[ stable( feature = "vec_deque_partial_eq_slice" , since = "1.17.0" ) ]
2579
- impl <A : $Bound, B > PartialEq <$Rhs> for $Lhs where A : PartialEq <B > {
2580
- fn eq( & self , other: & $Rhs) -> bool {
2577
+ impl <A , B , $( $vars) * > PartialEq <$rhs> for $lhs
2578
+ where
2579
+ A : PartialEq <B >,
2580
+ $( $constraints) *
2581
+ {
2582
+ fn eq( & self , other: & $rhs) -> bool {
2581
2583
if self . len( ) != other. len( ) {
2582
2584
return false ;
2583
2585
}
@@ -2589,26 +2591,12 @@ macro_rules! __impl_slice_eq1 {
2589
2591
}
2590
2592
}
2591
2593
2592
- __impl_slice_eq1 ! { VecDeque <A >, Vec <B > }
2593
- __impl_slice_eq1 ! { VecDeque <A >, & [ B ] }
2594
- __impl_slice_eq1 ! { VecDeque <A >, & mut [ B ] }
2595
-
2596
- macro_rules! array_impls {
2597
- ( $( $N: expr) +) => {
2598
- $(
2599
- __impl_slice_eq1! { VecDeque <A >, [ B ; $N] }
2600
- __impl_slice_eq1! { VecDeque <A >, & [ B ; $N] }
2601
- __impl_slice_eq1! { VecDeque <A >, & mut [ B ; $N] }
2602
- ) +
2603
- }
2604
- }
2605
-
2606
- array_impls ! {
2607
- 0 1 2 3 4 5 6 7 8 9
2608
- 10 11 12 13 14 15 16 17 18 19
2609
- 20 21 22 23 24 25 26 27 28 29
2610
- 30 31 32
2611
- }
2594
+ __impl_slice_eq1 ! { [ ] VecDeque <A >, Vec <B >, }
2595
+ __impl_slice_eq1 ! { [ ] VecDeque <A >, & [ B ] , }
2596
+ __impl_slice_eq1 ! { [ ] VecDeque <A >, & mut [ B ] , }
2597
+ __impl_slice_eq1 ! { [ const N : usize ] VecDeque <A >, [ B ; N ] , [ B ; N ] : LengthAtMost32 }
2598
+ __impl_slice_eq1 ! { [ const N : usize ] VecDeque <A >, & [ B ; N ] , [ B ; N ] : LengthAtMost32 }
2599
+ __impl_slice_eq1 ! { [ const N : usize ] VecDeque <A >, & mut [ B ; N ] , [ B ; N ] : LengthAtMost32 }
2612
2600
2613
2601
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
2614
2602
impl < A : PartialOrd > PartialOrd for VecDeque < A > {
0 commit comments