11use super :: * ;
22
3- pub ( crate ) struct MapDecoder < ' a , K > {
4- decoder : & ' a mut Decoder ,
3+ pub ( crate ) struct MapDecoder < ' a , ' b , K > {
4+ decoder : & ' a mut Decoder < ' b > ,
55 last : Option < K > ,
66 remaining : u64 ,
77}
88
9- impl < ' a , K > MapDecoder < ' a , K > {
10- pub ( crate ) fn new ( decoder : & ' a mut Decoder , len : u64 ) -> Self {
9+ impl < ' a , ' b , K > MapDecoder < ' a , ' b , K > {
10+ pub ( crate ) fn new ( decoder : & ' a mut Decoder < ' b > , len : u64 ) -> Self {
1111 Self {
1212 decoder,
1313 last : None ,
@@ -16,7 +16,7 @@ impl<'a, K> MapDecoder<'a, K> {
1616 }
1717}
1818
19- impl < K : Clone + Decode + Debug + PartialOrd > MapDecoder < ' _ , K > {
19+ impl < K : Clone + Decode + Debug + PartialOrd > MapDecoder < ' _ , ' _ , K > {
2020 pub ( crate ) fn finish ( & mut self ) -> Result < ( ) , DecodeError > {
2121 ensure ! ( self . remaining == 0 , decode_error:: UnconsumedEntries ) ;
2222 Ok ( ( ) )
@@ -96,21 +96,21 @@ mod tests {
9696
9797 #[ test]
9898 fn key_mismatch ( ) {
99- let mut decoder = Decoder :: new ( vec ! [ 0xa1 , 0x01 , 0x00 ] ) ;
99+ let mut decoder = Decoder :: new ( & [ 0xa1 , 0x01 , 0x00 ] ) ;
100100 let mut map = decoder. map :: < u64 > ( ) . unwrap ( ) ;
101101 assert_matches ! ( map. key:: <u64 >( 0 ) , Err ( DecodeError :: UnexpectedKey ) ) ;
102102 }
103103
104104 #[ test]
105105 fn missing_field ( ) {
106- let mut decoder = Decoder :: new ( vec ! [ 0xa0 ] ) ;
106+ let mut decoder = Decoder :: new ( & [ 0xa0 ] ) ;
107107 let mut map = decoder. map :: < u64 > ( ) . unwrap ( ) ;
108108 assert_matches ! ( map. required_key:: <u64 >( 0 ) , Err ( DecodeError :: MissingField { key } ) if key == "0" ) ;
109109 }
110110
111111 #[ test]
112112 fn optional_key_missing ( ) {
113- let mut decoder = Decoder :: new ( vec ! [ 0xa1 , 0x01 , 0x18 , 0x2a ] ) ;
113+ let mut decoder = Decoder :: new ( & [ 0xa1 , 0x01 , 0x18 , 0x2a ] ) ;
114114 let mut map = decoder. map :: < u64 > ( ) . unwrap ( ) ;
115115 assert_matches ! ( map. optional_key:: <u64 >( 0 ) , Ok ( None ) ) ;
116116 map. next :: < u64 > ( ) . unwrap ( ) ;
@@ -119,23 +119,23 @@ mod tests {
119119
120120 #[ test]
121121 fn optional_key_present ( ) {
122- let mut decoder = Decoder :: new ( vec ! [ 0xa1 , 0x00 , 0x18 , 0x2a ] ) ;
122+ let mut decoder = Decoder :: new ( & [ 0xa1 , 0x00 , 0x18 , 0x2a ] ) ;
123123 let mut map = decoder. map :: < u64 > ( ) . unwrap ( ) ;
124124 assert_matches ! ( map. optional_key:: <u64 >( 0 ) , Ok ( Some ( 42 ) ) ) ;
125125 map. finish ( ) . unwrap ( ) ;
126126 }
127127
128128 #[ test]
129129 fn out_of_order ( ) {
130- let mut decoder = Decoder :: new ( vec ! [ 0xa2 , 0x02 , 0x00 , 0x01 , 0x00 ] ) ;
130+ let mut decoder = Decoder :: new ( & [ 0xa2 , 0x02 , 0x00 , 0x01 , 0x00 ] ) ;
131131 let mut map = decoder. map :: < u64 > ( ) . unwrap ( ) ;
132132 map. next :: < u64 > ( ) . unwrap ( ) ;
133133 assert_matches ! ( map. next:: <u64 >( ) , Err ( DecodeError :: KeyOrder ) ) ;
134134 }
135135
136136 #[ test]
137137 fn unconsumed_entries ( ) {
138- let mut decoder = Decoder :: new ( vec ! [ 0xa2 , 0x00 , 0x00 , 0x01 , 0x01 ] ) ;
138+ let mut decoder = Decoder :: new ( & [ 0xa2 , 0x00 , 0x00 , 0x01 , 0x01 ] ) ;
139139 let mut map = decoder. map :: < u64 > ( ) . unwrap ( ) ;
140140 map. next :: < u64 > ( ) . unwrap ( ) ;
141141 assert_matches ! ( map. finish( ) , Err ( DecodeError :: UnconsumedEntries ) ) ;
0 commit comments