1- use crate :: { enum_map, EnumArray , EnumMap } ;
1+ use crate :: { enum_map, Enum , EnumMap } ;
22use core:: fmt:: { self , Debug , Formatter } ;
33use core:: hash:: { Hash , Hasher } ;
44use core:: iter:: { Extend , FromIterator } ;
55use core:: ops:: { Index , IndexMut } ;
66
7- impl < K : EnumArray < V > + Debug , V : Debug > Debug for EnumMap < K , V > {
7+ impl < K : Enum + Debug , V : Debug > Debug for EnumMap < K , V > {
88 fn fmt ( & self , f : & mut Formatter ) -> fmt:: Result {
99 f. debug_map ( ) . entries ( self ) . finish ( )
1010 }
1111}
1212
13- impl < K : EnumArray < V > , V > Extend < ( K , V ) > for EnumMap < K , V > {
13+ impl < K : Enum , V > Extend < ( K , V ) > for EnumMap < K , V > {
1414 fn extend < I : IntoIterator < Item = ( K , V ) > > ( & mut self , iter : I ) {
1515 for ( key, value) in iter {
1616 self [ key] = value;
@@ -20,7 +20,7 @@ impl<K: EnumArray<V>, V> Extend<(K, V)> for EnumMap<K, V> {
2020
2121impl < ' a , K , V > Extend < ( & ' a K , & ' a V ) > for EnumMap < K , V >
2222where
23- K : EnumArray < V > + Copy ,
23+ K : Enum + Copy ,
2424 V : Copy ,
2525{
2626 fn extend < I : IntoIterator < Item = ( & ' a K , & ' a V ) > > ( & mut self , iter : I ) {
3131impl < K , V > FromIterator < ( K , V ) > for EnumMap < K , V >
3232where
3333 Self : Default ,
34- K : EnumArray < V > ,
34+ K : Enum ,
3535{
3636 fn from_iter < I : IntoIterator < Item = ( K , V ) > > ( iter : I ) -> Self {
3737 let mut map = EnumMap :: default ( ) ;
4040 }
4141}
4242
43- impl < K : EnumArray < V > , V > Index < K > for EnumMap < K , V > {
43+ impl < K : Enum , V > Index < K > for EnumMap < K , V > {
4444 type Output = V ;
4545
4646 #[ inline]
@@ -49,7 +49,7 @@ impl<K: EnumArray<V>, V> Index<K> for EnumMap<K, V> {
4949 }
5050}
5151
52- impl < K : EnumArray < V > , V > IndexMut < K > for EnumMap < K , V > {
52+ impl < K : Enum , V > IndexMut < K > for EnumMap < K , V > {
5353 #[ inline]
5454 fn index_mut ( & mut self , key : K ) -> & mut V {
5555 & mut self . as_mut_slice ( ) [ key. into_usize ( ) ]
@@ -58,9 +58,9 @@ impl<K: EnumArray<V>, V> IndexMut<K> for EnumMap<K, V> {
5858
5959// Implementations provided by derive attribute are too specific, and put requirements on K.
6060// This is caused by rust-lang/rust#26925.
61- impl < K : EnumArray < V > , V > Clone for EnumMap < K , V >
61+ impl < K : Enum , V > Clone for EnumMap < K , V >
6262where
63- K :: Array : Clone ,
63+ K :: Array < V > : Clone ,
6464{
6565 #[ inline]
6666 fn clone ( & self ) -> Self {
@@ -70,38 +70,38 @@ where
7070 }
7171}
7272
73- impl < K : EnumArray < V > , V > Copy for EnumMap < K , V > where K :: Array : Copy { }
73+ impl < K : Enum , V > Copy for EnumMap < K , V > where K :: Array < V > : Copy { }
7474
75- impl < K : EnumArray < V > , V : PartialEq > PartialEq for EnumMap < K , V > {
75+ impl < K : Enum , V : PartialEq > PartialEq for EnumMap < K , V > {
7676 #[ inline]
7777 fn eq ( & self , other : & Self ) -> bool {
7878 self . as_slice ( ) == other. as_slice ( )
7979 }
8080}
8181
82- impl < K : EnumArray < V > , V : Eq > Eq for EnumMap < K , V > { }
82+ impl < K : Enum , V : Eq > Eq for EnumMap < K , V > { }
8383
84- impl < K : EnumArray < V > , V : Hash > Hash for EnumMap < K , V > {
84+ impl < K : Enum , V : Hash > Hash for EnumMap < K , V > {
8585 #[ inline]
8686 fn hash < H : Hasher > ( & self , state : & mut H ) {
8787 self . as_slice ( ) . hash ( state) ;
8888 }
8989}
9090
91- impl < K : EnumArray < V > , V : Default > Default for EnumMap < K , V > {
91+ impl < K : Enum , V : Default > Default for EnumMap < K , V > {
9292 #[ inline]
9393 fn default ( ) -> Self {
9494 enum_map ! { _ => V :: default ( ) }
9595 }
9696}
9797
98- impl < K : EnumArray < V > , V : PartialOrd > PartialOrd for EnumMap < K , V > {
98+ impl < K : Enum , V : PartialOrd > PartialOrd for EnumMap < K , V > {
9999 fn partial_cmp ( & self , other : & Self ) -> Option < core:: cmp:: Ordering > {
100100 self . as_slice ( ) . partial_cmp ( other. as_slice ( ) )
101101 }
102102}
103103
104- impl < K : EnumArray < V > , V : Ord > Ord for EnumMap < K , V > {
104+ impl < K : Enum , V : Ord > Ord for EnumMap < K , V > {
105105 fn cmp ( & self , other : & Self ) -> core:: cmp:: Ordering {
106106 self . as_slice ( ) . cmp ( other. as_slice ( ) )
107107 }
0 commit comments